일상 코딩
[C++/8.4] 생성자 멤버 초기화 본문
728x90
#include<iostream>
using namespace std;
class B
{
private:
int m_b;
public:
B(const int& m_b_in)
: m_b(m_b_in)
{}
};
class Something
{
private:
int m_i = 100;
double m_d = 100.0;
char m_c = 'F';
int m_arr[5] = {100, 200, 300, 400, 500};
B m_b{ 1024 };
// 여기서 초기화를 하더라도 생성자가 우선이라 생성자에서 대입한 값으로 출력됨.
public:
Something()
// '{}'를 쓰면 자동으로 형변환이 안되어 좀 더 엄격해진다.
: m_i{1}, m_d{3.14}, m_c{'a'},
m_arr{1,2,3,4,5}, m_b(m_i - 1)
{
m_i *= 3;
m_d *= 3.0;
m_c += 3;
}
void print()
{
cout << m_i << " " << m_d << " " << m_c << endl;
for( auto& e: m_arr)
cout << e << " ";
cout << endl;
}
};
int main(int argc, char const *argv[])
{
Something som;
som.print();
return 0;
}
728x90
'C++ > 따배C++ 08강 객체지향 기초' 카테고리의 다른 글
[C++/8.6] CLASS 소멸자, destructor (0) | 2021.10.21 |
---|---|
[C++/8.5] CLASS 위임 생성자, 초기화 함수 이용 (0) | 2021.10.21 |
[C++/8.3] 생성자 constructors (0) | 2021.10.20 |
[C++/8.2] 캡슐화, 접근 지정자, 접근함수 (0) | 2021.10.20 |
[C++/8.1] 객체지향 프로그래밍과 클래스 (0) | 2021.10.20 |