이 작은 코드 스 니펫을 C++로 작성했으며 출력도 첨부되어 있습니다. 생성자가 두 번 호출되는 것을 볼 수있는 반면 생성자가 한 번만 호출되는 이유를 이해하지 못합니다. 내가, 기본 생성자 및 과부하 할당 연산자를 이해하는 것과C++ 생성자 호출
은 28
사람이에 대한 몇 가지 빛을 던져 주실 줄에서 호출해야합니다 :
1 #include <iostream>
2 using namespace std;
3
4 class ABC {
5 char c;
6 public:
7 ABC() {
8 cout << "default" << endl;
9 }
10 ABC(char c) {
11 this->c = c;
12 cout << c << endl;
13 }
14 ~ABC() {
15 cout << hex << this << " destructor " << c << endl;
16 }
17 void method() {
18 cout << "method" << endl;
19 }
20 void operator= (const ABC& a) {
21 cout << "operator" << endl;
22 }
23
24 };
25
26 int main() {
27 ABC b('b');
28 ABC a = b;
29 }
Output in g++ version 4.0.1:
~/src$ g++ test.cpp
~/src$ ./a.out
b
0xbffff0ee destructor b
0xbffff0ef destructor b
생성자 태그에 어떤 문제가 있습니까? – GManNickG