在Mac OS X Leopard上使用Xcode编写C++代码:
我有以下代码:
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;
这一行可以解决问题。看起来我没有正确地进行赋值。我该如何解决这个问题?编辑:
变量bars是一个字符串数组。在主函数中,我像这样初始化它:
string bars[] = {"bar1", "bar2", "bar3"};
但它可以包含任意数量的成员。
string bars[]
本身就是一个错误 - 你的编译器允许你这样做(而且,根据错误信息判断,将其视为string bars[0]
),这意味着它将其作为扩展提供。 - Pavel Minaev