在 C++ 中的模板 class 中创建向量
Creating a vector in a template class in C++
我正在尝试在模板 class 中创建一个向量,其中向量的类型取决于我在其中定义它的 class 的模板。我的代码如下 :
template<class T>
class A {
vector<T*> vec;
vec.resize(100);
}
当我尝试编译它时,我收到以下错误消息:
error: ‘vec’ does not name a type; did you mean ‘getc’?
vec.resize(100);
^~~
有人可以告诉我如何定义这样的向量吗?
提前致谢。
这与模板无关。这个非模板代码也会出错
class A {
vector<int*> vec;
vec.resize(100);
}
因为vec.resize(100)
不在函数中。我猜你希望在构造函数中调用该代码,就像这样
class A {
vector<int*> vec;
A() {
vec.resize(100);
}
}
这是合法的。现在我们可以把那个法律代码变成一个模板
template <class T>
class A {
vector<T*> vec;
A() {
vec.resize(100);
}
}
我正在尝试在模板 class 中创建一个向量,其中向量的类型取决于我在其中定义它的 class 的模板。我的代码如下 :
template<class T>
class A {
vector<T*> vec;
vec.resize(100);
}
当我尝试编译它时,我收到以下错误消息:
error: ‘vec’ does not name a type; did you mean ‘getc’?
vec.resize(100);
^~~
有人可以告诉我如何定义这样的向量吗?
提前致谢。
这与模板无关。这个非模板代码也会出错
class A {
vector<int*> vec;
vec.resize(100);
}
因为vec.resize(100)
不在函数中。我猜你希望在构造函数中调用该代码,就像这样
class A {
vector<int*> vec;
A() {
vec.resize(100);
}
}
这是合法的。现在我们可以把那个法律代码变成一个模板
template <class T>
class A {
vector<T*> vec;
A() {
vec.resize(100);
}
}