2016-09-11 1 views
-1

Example (class)의 객체를 만들 때 equal 연산자로 int 값을 할당하고 연산자 오버로딩이 어떻게 작동하는지 확인하고자합니다.연산자 = C++에서 다른 매개 변수로 오버로드합니까?

그러나 나는 다음과 같은 코드로 컴파일 할수 없어 :

클래스 :

Example& Example::operator=(int number) 
{ 
    this->number = number; 
    return *this; 
} 

주 : 그것은 그 모습에도 불구하고

Example x1 = 10; 
+2

코드에서 할당 연산자를 사용하고 있지 않습니다. 그러나 [mcve]를 게시하십시오. – juanchopanza

+0

어떤 오류가 발생합니까? –

+0

오류 : int를 Example로 변환 할 수 없습니다. 그 방법으로 Visual C++ 컴파일러를 사용하고 있습니다. – Topper

답변

1

이 할당되지는 초기화. 할당 연산자가 아니라 생성자를 호출합니다.

이 시도 : 당신의 예에서

Example x1; // initialize 
x1 = 10; // assign 

를 그것의 매개 변수로 int 소요 생성자를 찾고 있습니다.

1

라인은

Example x1 = 10; 

대신 할당 연산자,

Example x1(10); 

또는

Example x1 = Example(10); 

이는 생성자 호출과 동일하다. 분명히 다음과 같은 생성자가 필요합니다.

Example(const int& n) : number(n) {} 
관련 문제