본문 바로가기

Programming/C,C++

[C++ / 구조체 생성자] 구조체를 이름 없이 사용하고 간단하게 값을 할당하고 싶을 때

반응형

다음을 구조체 생성자라고 한다.

 

coordinate(double dI, double dJ) : typedef struct coordinate
{
         coordinate(double dI, double dJ) : i(dI), j(dJ) {}
         double i; // i == y == v == row
         double j; // j == x == u == col
}dCoordinate;

 

다음과 같이 선언하면 dI를 i에 넣고, dJ를 j에 할당하겠다는 뜻이고, 클래스의 생성자 처럼 사용이 가능하다.

즉, coordinate 구조체를 사용할 때 원래 다음과 같이 사용했다면

구조체 기본 초기화 방법

 

구조체 생성자를 이용하면 다음과 같이 초기화가 가능하다.

구조체 생성자 사용

그리고 이는 객체이름을 따로 설정할 필요가 없을 때, 다음과 같이 사용할 수 있어서 편리하다.

 

벡터에 들어간 이후는 객체의 이름이 따로 필요하지 않은데 그럴 때 다음과 같이 구조체를 생성함과 동시에 벡터에 할당이 가능하다.

반응형