04
04
728x90
#include <iostream>

using namespace std;

class People {
    private:
        int age;
        string name;

    public:
        // 생성자를 아래처럼 쓴다면 기본생성자처럼 매개변수 없는 경우에도 초기화된다.
        // 방법: 매개변수 이름 오른쪽에 값 지정해줌
        // 이렇게 사용할 경우 왼쪽부터 초기화 된다.(main()의 copyAge 참고)
        People(int age = 0, string name = "empty") {
            this->age = age;
            this->name = name;
        }

        void print() { cout << this->age << ", " << this->name << '\n'; }
};

int main() {
    People empty;                     // 기본생성자 호출 초기화 
    People h(26, "이름1");            // 매개변수 넘겨서 초기화(직접초기화 방식) int a(5);와 같음
    People d {26, "이름2"};           // 매개변수 넘겨서 초기화(유니폼 초기화 방식) int a{5};와 같음
    People copy = People(66, "copy"); // 클래스 대입 연산자(=)이용 복사 초기화 int a = 5;와 같음
    People copyAge = 99;              // 이런 경우 왼쪽부터 초기화 된다.

    empty.print();
    h.print();
    d.print();
    copy.print();
    copyAge.print();

    return 0;
}

 

728x90
COMMENT