2014-03-12 42 views
0

請在下面的代碼中告訴我做錯了什麼,compilor給我錯誤 1.聲明operator =爲非函數 2.在const之前的預期主表達式 我無法確定我的錯誤C++常量引用返回聲明operator =作爲非函數

等 plz幫助我

#include <iostream> 
using namespace std; 


class myClass{ 

    int a; 
    int b; 

    public: 

     myClass(); 
     myClass(int x, int y); 
     const myClass& operator=(const myClass &); 
     void display();  

}; 


myClass::myClass(){ 

    a=0; 
    b=0; 
} 
myClass::myClass(int x, int y){ 
    this->a=x; 
    this->b=y; 
} 

const myClass& myClass::operator=(const class & rightobj){ 

    if(this!=&rightobj){ 

     this->a=rightobj.a; 
     this->b=rightobj.b; 

    } 

    return *this; 

} 

void myClass::display(){ 

    cout<<a<<endl; 
    cout<<b<<endl; 
} 

int main(){ 

myClass class1(2,3); 
myClass class2; 

class2=class1; 

class2.display(); 



return 0; 
} 

回答

4

這裏有一個錯字:

const myClass& myClass::operator=(const class & rightobj) 
             //^^Should be myClass 
+0

ohh謝謝,我忘了 – user3215228

+0

@ user3215228不客氣。順便說一句,'使用命名空間std'被認爲是不好的做法。你可能會在這裏找到很多關於爲什麼感興趣的帖子。 – taocp

+0

這是一個不好的習慣,在一個.cpp源文件中並不重要。 –