在C++上Mac OS X Leopard在Xcode工作:如何初始化一个类的构造函数中的数组?
我有以下代码:
class Foo{
private:
string bars[];
public:
Foo(string initial_bars[]){
bars = initial_bars;
}
}
它没有编译和引发以下错误:
error: incompatible types in assignment of 'std::string*' to 'std::string [0u]'
我注意到,除去线bars = initial_bars;
解决了这个问题。 看来我没有正确地完成任务。我怎么能解决这个问题呢?
编辑:
变量栏是一个字符串数组。在主函数中我这样初始化:
string bars[] = {"bar1", "bar2", "bar3"};
但它可以包含任意数量的成员。
对于初学者来说,申报'string bars []'本身在ISO C++兼容代码中是一个错误 - 事实上你的编译器允许你这样做(并且根据错误消息判断它被视为'string bars [0]')意味着它提供了作为扩展。 – 2009-09-24 16:30:56