클래스를 생성한뒤 값을 주거나
값을 주어 생성하는 경우 어떻게 다른가 테스트
일단.. operator= 와 같이
할당연산자가 기본으로 생성되어 그런건지 모르겠지만
클래스를 만들고 나서 값을 할당하는 경우와는 또 다르게 움직인다.
그리고 생성자가 마치 할당연산자 같이 작동하는 신기한 현상을 발견...
아아 c++ 어려워 ㅠㅠ
생성자를 주석처리하여 실험해보면
operator= 일수도 있다고 연결되는 걸 봐서는... 쩝...
[링크 : https://kldp.org/node/31436]
[링크 : http://skmagic.tistory.com/entry/복사생성자와-대입연산자의-차이]
[링크 : http://msdn.microsoft.com/ko-kr/library/c5at8eya.aspx ]
값을 주어 생성하는 경우 어떻게 다른가 테스트
일단.. operator= 와 같이
할당연산자가 기본으로 생성되어 그런건지 모르겠지만
클래스를 만들고 나서 값을 할당하는 경우와는 또 다르게 움직인다.
그리고 생성자가 마치 할당연산자 같이 작동하는 신기한 현상을 발견...
아아 c++ 어려워 ㅠㅠ
#include < iostream >
using namespace std;
class test
{
int a1, a2;
int a;
public:
test()
{
}
test(int b)
{
cout << "constructor called" << endl;
a = b;
}
void dump()
{
cout << a1 << ' ' << a2 << ' ' << a << endl;
}
};
void main()
{
cout << "tt" << endl;
test tt;
cout << "t2(11)" << endl;
test t2(11);
cout << "tt = 11" << endl;
tt = 11;
cout << "tt = 55" << endl;
tt = 55;
tt.dump();
t2.dump();
}| tt
t2(11)
constructor called
tt = 11
constructor called
tt = 55
constructor called
-858993460 -858993460 55
-858993460 -858993460 11 |
생성자를 주석처리하여 실험해보면
operator= 일수도 있다고 연결되는 걸 봐서는... 쩝...
1>error C2679: 이항 '=' : 오른쪽 피연산자로 'int' 형식을 사용하는 연산자가 없거나 허용되는 변환이 없습니다.
1> 'test &test::operator =(const test &)'일 수 있습니다.
1> 인수 목록 '(test, int)'을(를) 일치시키는 동안 |
[링크 : http://skmagic.tistory.com/entry/복사생성자와-대입연산자의-차이]
[링크 : http://msdn.microsoft.com/ko-kr/library/c5at8eya.aspx ]
'Programming > C++ STL' 카테고리의 다른 글
| deep copy / shallow copy < object copy (0) | 2014.02.27 |
|---|---|
| crt0.o / crtexe.obj (0) | 2014.02.27 |
| C++11 Lambda Fuction (2) | 2013.11.20 |
| C++ AMP (Accelerated Massive Parallelism) (0) | 2013.10.08 |
| c++ class - friend (0) | 2013.03.15 |
sed1520.pdf