728x90
반응형
한 번 설정하고, 여러 곳에서 활용하자. 컨스트럭터 내에서 멤버 변수의 설정을 위한 할당 대신 초기화를 사용하면
불필요한 런터임 작업과 타이핑을 줄일 수 있다. 컨스트럭터는 내부적으로 초기화 코드를 만들어낸다. 다음 코드를 보자.
class A {
string s1_, s2_;
public:
A() { s1_ = "Hello,"; s2_ = "World"; }
};
실제로는 여러분이 다음과 같이 작성한 것처럼 컨스트럭터의 코드가 만들어진다.
A() : s1_(), s2_() { s1_ = "Hello,"; s2_ = "World"; }
즉 직접 초기화하지 않은 개체는 표준 컨스트럭터를 통해 자동으로 초기화되고, 할당 연산자를 통해 할당된다는 것이다.
주요한 개체의 할당 연산자는 이미 만들어진 개체를 다룬다는 이유 때문에 컨스트럭터보다 더 중요한 역할을 하게 된다.
따라서 초기화 목록 내에서 멤버 변수를 초기화하는 것이, 보다 명확하게 의도를 드러내주고, 더 간결하며 빠르다.
A() : s1_("Hello,"), s2_("World") {}
이는 성급한 최적화라기보다는 적절한 습관을 통한 최적화라고 볼 수 있다.
728x90
반응형
'소프트웨어 공부 > 프로그래밍' 카테고리의 다른 글
[프로그래밍] 소프트웨어 설계의 개요 (0) | 2021.08.25 |
---|---|
[프로그래밍] 루틴의 특성 (0) | 2021.08.25 |
최소화된 클래스를 사용하라 (0) | 2021.04.20 |
내부의 것은 너무 노출시키지 말라. (0) | 2021.04.20 |
만들고 있는 클래스가 무엇인지 확실히 하라 (0) | 2021.04.20 |