사실 최근 까지도 C 스타일로 구조체를 선언하고 초기화하는 방식을 선호했었는데, 다양한 방법이 있고 조금 더 깔끔한 방법이 좋을 것 같아서 알아봤다.
사실 코드를 보는 입장에서 그렇게 큰 차이를 갖는다고 생각하지는 않지만, 자기만족이라는게 있으니 익숙한 스타일을 만들어 보는 것이 좋겠다.
1. 변수선언 후 값 입력하기
C언어를 처음 배울 때 이런 방식으로 배워서 계속 초기화를 이렇게 해 왔던 것 같다. 물론 구조체 자체에 초기값을 지정할 수야 있겠지만, 사용하는 위치마다 값이 달라지고 해서.. 값을 입력하는 과정이 필요했다.
#include <iostream>
using namespace std;
struct sa
{
int i_val;
bool b_val;
};
int main()
{
sa s_1;
s_1.i_val = 1;
s_1.b_val = false;
cout << s_1.i_val << endl;
cout << s_1.b_val << endl;
return 0;
}
2. 선언과 함께 사용하기
앞으로 나는 이렇게 사용하려고한다. 사실 초기화 시점에는 이미 값들을 다 알고있는데, 변수선언 시점에 기본값을 입력하게 해놓고 다시 값을 입력하는 것 자체가 조금 불편한? 느낌을 받기 시작했기 때문이다.
#include <iostream>
using namespace std;
struct sa
{
int i_val;
bool b_val;
};
int main()
{
sa s_2 = {
1,
true
};
cout << s_2.i_val << endl;
cout << s_2.b_val << endl;
return 0;
}
사실 두 가지 코드를 보았을 때 뭐.. 이사람은 왜 이렇게 썼지? 별로네? 라는 생각이 들지는 않는다.
그저 스타일 정도라고 판단이 되는데 나는 이런저런 이유에서 2번 방법을 사용 할 예정이다.
'C++' 카테고리의 다른 글
[C++] const 의 개념 그리고 포인터 에서의 const (0) | 2022.03.27 |
---|---|
[C++/STL] vector의 크기, length 를 구하는 방법 (0) | 2021.11.29 |
[Effective C++] 상속받은 비가상 함수를 파생클래스에서 재정의 하지 말자 (0) | 2021.06.11 |
[Effective C++] public 상속 모형은 반드시 "is-a" 를 따른다. (0) | 2021.06.05 |
[Effective C++] 내부에서 사용하는 객체에 대한 핸들은 반환하지 말자 (0) | 2021.06.02 |