这里是我有什么(不工作)的简化版本:如何在C++中使用常量数组的成员函数?
prog.h:
...
const string c_strExample1 = "ex1";
const string c_strExample2 = "ex2";
const string c_astrExamples[] = {c_strExample1, c_strExample2};
...
prog.cpp:
...
int main()
{
int nLength = c_astrExamples.length();
for (int i = 0; i < nLength; i++)
cout << c_astrExamples[i] << "\n";
return 0;
}
...
当我尝试建立,我得到以下错误: 错误C2228:'.length'的左边必须有class/struct/union
只有当我尝试使用成员func c_astrExamples的部分。 如果我用数字2替换“c_astrExamples.length()”,一切似乎都正常工作。
我能够使用c_strExample1和c_strExample2的成员函数,所以我认为行为出现在我使用字符串与字符串数组之间的一些区别。
我在prog.h中的初始化是否错误?我需要prog.cpp中特别的东西吗?
@Grumdrig:你需要开始一个新的句子:” .. .vector。如果你......' –
quamrana
2009-10-28 19:12:39
@quamrana - Grumdrig的句子正确解析我。 “如果你想要,你应该使用X,否则就这样做。”完美的语法结构。 – asveikau 2009-10-28 19:15:41
我还会注意到提问者比他小心sizeof()。它经常混淆新手,它不会告诉你编译器不知道的任何东西的大小,例如。动态分配的内存,或作为参数传递给函数的东西。 – asveikau 2009-10-28 19:21:03