我需要一个 char * 数组作为类的属性定义,并在类的构造函数中用一个长度初始化它。例如:
foo.h中:
class Foo{
public:
char * array[1] // declare the array here, syntax unsure
Foo(int length);
}
Foo.cpp中:
Foo::Foo(int length){
array[length] // set the length of the array here, syntax unsure
}
不确定语法...我只看到了长度指针数组的声明。我想知道如何先声明它并稍后设置/重新声明一个新的长度。
答案 0 :(得分:-1)
使用std::vector
:
class Foo{
public:
std::vector<char*> array;
Foo(int length) : array(length) {}
}
在:
array(length)
您将构建一个length
默认构造char*
的容器。您甚至可以使用the other个有用的构造函数之一。具体来说,如果要定义元素length
的{{1}}个副本,可以使用:
x
然后,您最终可以使用array(length, x)
/ push_back
推送他们。
如果emplace_back
在语义上是一个字符串,那么您应该使用char*
。
如果你所描述的课程很小,那么你可以简单地使用:
std::vector<std::string>
类型别名不会创建新类型,它只会创建一个新的类型别名。