To Do
- Struct 구조의 선언 및 초기화에 대해 알아보자.
#include <iostream>
using namespace std;
struct A{
int a,b,c;
A(int _a, int _b, int _c) : a(_a), b(_b), c(_c){};
};
struct B{
int a,b,c;
};
int main() {
// [1]
// Error : No matching constructor for initialization of 'A'
// A tmp;
// [2]
A tmp(1,2,3);
// [3]
B tmp2;
tmp2.a = 1;
tmp2.b = 2;
tmp2.c = 3;
cout << tmp.a << " " << tmp2.a << endl;
cout << tmp.b << " " << tmp2.b << endl;
cout << tmp.c << " " << tmp2.c << endl;
return 0;
}
/*
Output
1 1
2 2
3 3
*/
Review
-
[1]처럼 했을 시 생성자 에러가 뜬다.
-
struct A 구조체안에서 A()로 선언한 생성자가 없기 때문이다.
-
A구조체를 사용하고 싶다면 [2]처럼 해야한다.
-
B구조체처럼 생성자가 없이 선언 후 [3]처럼 하나씩 초기화를 해줘도 된다.