Anonymous Struct
2020. 11. 30. 19:36ㆍ카테고리 없음
Anonymous Struct
사용예시
#include <iostream>
int main(){
struct Point{
int x;
int y;
};
Point ary[] = {Point{1,2}, Point{2,4}};
//혹은 다음과 같이 선언되기도 한다.
Point ary2[] = {{1,2},{2,4}};
}
봐둘 것
1. struct가 main함수 내부에 선언 되었다.
2. Anonymous Struct를 사용하였다.
2-1 Anonymous Struct의 초기화는 { } bracket을 사용하였다.
2-2 Anonymous Struct는 변수명을 필요로 하지 않는다.
응용
1. class도 main함수 내부에 선언 되는가?
#include <iostream>
int main(){
class Point{
int x;
int y;
};
Point ary[] = {Point{1,2}, Point{2,4}}; // constructor가 없다는 에러
//혹은 다음과 같이 선언되기도 한다.
Point ary2[] = {{1,2},{2,4}};
}
Ans) 선언된다. 그러나 Struct와 같이 { } bracket으로 private 필드를 묵시적으로 생성할 수 없다.
2. Anonymous Class를 위와같이 사용 가능한가?
Ans) 사용가능하지만 생성자를 따로 정의하고, ( ) bracket을 사용해야 한다.
따라서 다음과 같이 생성자를 따로 정의하고,
{ } bracket이 아닌 ( ) bracket을 이용해 Struct와 같이 사용할 수 있다.
#include <iostream>
int main(){
class Point{
int x;
int y;
public:
Point(int _x, int _y):x(_x),y(_y){}
};
Point ary[] = {Point(1,2), Point(2,4)};
}