vector <CWord> words;定义了一个CWord w
但是在words中push_back会报错words.push_back (w);
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)小弟没分  就谢谢大家了···

解决方案 »

  1.   

    你定义成了private了
    放public里
      

  2.   


    额?没有啊  
    vector <CWord> words和CWord w我都放在public里面了
      

  3.   


    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()
    };
      

  4.   


    修改了CWord里面private,还是会报同样的错啊
      

  5.   

    vector <CWord *> words;这样应该要好些。
      

  6.   

    你的CWord类要定义copy construction和重载operator =操作符
      

  7.   

    class CWordsTable : public CWnd
    {
    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);
    }
    具体怎么改啊  改一个其他地方还是会报错的
      

  8.   

    void CWordsTable::stat (string word){
    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);
    }
      

  9.   


    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);
    }
      

  10.   

    ·······还是有错
    word.push_back(w)报错error C2664: “std::vector<_Ty>::push_back”: 不能将参数 1 从“CWord *”转换为“const CWord &”
    改为word.push_back(*w)依旧报原来的错
    ···············
      

  11.   

    把works的定义改一下。
    vector <CWord *> words;另外:
    words->size()改成 words.size()。