클래스를 생성한뒤 값을 주거나
값을 주어 생성하는 경우 어떻게 다른가 테스트
일단.. 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 | 
