我只是想知道如何解决这个问题。
我有一个
vector<char> vstr;
类程序中的定义。
然后在类构造函数中我想用一个数组初始化这个 vector :
char arrayOfChars[] = {'a', 'b', 'c'};
this.vstr = new vector<string>(arrayOfChars, arrayOfChars + sizeof(arrayOfChars)/sizeof(arrayOfChar[0]));
构建给了我一个错误:
error: request for member 'vstr' int 'this', which is of non-class type 'Program *const' .
你能给我一个简单的解决这个错误的方法吗?
最佳答案
我不是 C++ 专家,但我至少看到两个问题:
- 您正在尝试用指针初始化一个对象。不要使用
new
关键词。 更重要的是这个指针指向字符串 vector 而不是字符,所以替换
vector<string>
与vector<char>
.作为
melak47
在他的评论中说this.vstr
也不正确,因为这是一个指针,因此应替换为this->vstr
或者简单地vstr
完成所有三个更正后,它应该可以编译
关于C++ STL vector 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32795600/