vector <CWord> words;定义了一个CWord w
但是在words中push_back会报错words.push_back (w);
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)小弟没分 就谢谢大家了···
但是在words中push_back会报错words.push_back (w);
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)小弟没分 就谢谢大家了···
放public里
额?没有啊
vector <CWord> words和CWord w我都放在public里面了
class CWord : public CWnd
{
DECLARE_DYNAMIC(CWord)
private:
string word;
int count;
public:
CWord();
virtual ~CWord();
void setWord(string word);
void addCount();
string getWord();
int getCount;protected:
DECLARE_MESSAGE_MAP()
};
修改了CWord里面private,还是会报同样的错啊
{
DECLARE_DYNAMIC(CWordsTable)public:
CWordsTable();
virtual ~CWordsTable();
vector <CWord> words;
void stat(string word);
protected:
DECLARE_MESSAGE_MAP()
};
void CWordsTable::stat (string word){
CWord w;
unsigned i;
w.setWord (word);
for( i=0;i<this->words.size ();i++){
if(this->words [i].getWord () == word){
this->words [i].addCount ();
exit(0);
}
}
words.push_back (w);
}
具体怎么改啊 改一个其他地方还是会报错的
CWord *w;
unsigned i;w = new CWord;
w->setWord (word);
for( i = 0;i < words->size(); i++)
{
if(words[i]->getWord () == word)
{
words[i]->addCount ();
exit(0);
}
}
words.push_back (w);
}
void CWordsTable::stat (string word){
CWord *w;
unsigned i;w = new CWord;
w->setWord (word);
for( i=0;i<this->words.size ();i++){
if(this->words [i].getWord () == word){
this->words [i].addCount ();
exit(0);
}
}
words.push_back (w);
}
word.push_back(w)报错error C2664: “std::vector<_Ty>::push_back”: 不能将参数 1 从“CWord *”转换为“const CWord &”
改为word.push_back(*w)依旧报原来的错
···············
vector <CWord *> words;另外:
words->size()改成 words.size()。