C ++ - 初始化构造函数中的指针数组

时间:2014-12-09 01:47:44

标签: c++ arrays pointers c++11

我需要一个 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
}

不确定语法...我只看到了长度指针数组的声明。我想知道如何先声明它并稍后设置/重新声明一个新的长度。

1 个答案:

答案 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>

类型别名不会创建新类型,它只会创建一个新的类型别名