-
기본 대입연산자 생성조건?@ 16. 1 ~ 17. 1/Effective C++ 2015. 12. 4. 21:37
class Test
{
public:
Test(int& _num, int& _num2) : num(_num), num2(_num2)
{}
private:
int& num; //이것들 떄문에..
const int num2; //이것들 때문에
};void main()
{int num = 10;
int num2 = 100;int num3 = 5;
int num4 = 50;Test a(num, num2);
Test b(num3, num4);a = b; //대입시 에러발생
}
파란색 글씨처럼 클래스내 참조나, 상수 멤버가 있다면 이걸 바탕으로
디폴트 대입연산자(기본 대입연산자) 실행되버리면 컴파일 에러가 난다. 원래 저것들(파란색)은 대입이라는 개념이 없는 것들이니까..
이럴때는 디폴트 말고 사용자가 직접 정의해서 대입연산자를 만들어야 한다. ( A& operator= 뭐 이런거..)
'@ 16. 1 ~ 17. 1 > Effective C++' 카테고리의 다른 글
인라인 함수 언제사용하지?? (0) 2015.12.31 소멸자에서 예외를 발생? (1) 2015.12.05 클래스 생성자는 초기화가 아니다. 정적(static)객체의 종류와 방법 (0) 2015.12.04 const 멤버 함수의 종류, const 함수내에서 수정가능한 경우 (0) 2015.12.04 #define cosnt 상수변수로 바꾸기! operator[], const static, 클래스내 const, define 매크로 (0) 2015.12.03