gpt4 book ai didi

c++ - 对于模板类,非泛型成员函数是否会被复制?

转载 作者:太空狗 更新时间:2023-10-29 20:17:30 25 4
gpt4 key购买 nike

或者只有那些实际使用通用部件的?

就像这个例子:

template<class T>
class foo
{
public:
void addStuff(int x,T y)
{

ints_.push_back(x);
generics_.push_back(y);
}
void clear()
{
ints_.clear();
generics_.clear();
}
void setName(std::string name)
{

name_ = name;
}

std::string name_;

std::vector<int> ints_;
std::vector<T> generics_;
};

非通用函数是内联的,因为将它们放在 .cpp 文件中需要专门化。他们也会被复制吗?只是好奇...

最佳答案

通过模板参数创建的每个类都是它自己的类。也就是说,如果你有 foo<int> , foo<double>foo<char>那么就会存在 3 个不同的 addStuff、clear 和 setName 函数。那是因为会有 3 个不同的类。模板是编译时实体。它们是在编译期间引入的,并没有像这样“减少”代码大小的尝试。

关于c++ - 对于模板类,非泛型成员函数是否会被复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6553659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com