1. 문제
2. Person 클래스의 객체를 생성하는 main() 함수는 다음가 같다.
(2). 디폴트 매개 변수를 가진 하나의 생성자를 작성하고 프로그램을 완성하라.
2. 결과
3. 코드
#include <iostream>
#include <string>
using namespace std;
class Person {
int id;
double weight;
string name;
public :
Person(int id=1, string name="Grace", double w=20.5)
{ this->id=id;
weight = w;
this->name=name;
}
void show() { cout << id << ' ' << weight << ' ' << name << endl; }
};
int main() {
Person grace, ashley(2, "Ashley"), helen(3, "Helen", 32.5);
grace.show();
ashley.show();
helen.show();
}
4. 설명
(1)번에서는 생성자가 디폴트 매개 변수를 가지고 있지 않아서 각각 3개의 생성자를 생성하였지만 (2)에서는 디폴트 매개 변수를 사용하므로써 생성자 하나로 (1)과 동일한 결과를 얻을 수 있다.
※ 디폴트 매개 변수를 지정할 시 주의하실 점은 매개변수의 순서 입니다.
예를들어 Person(int id, string name="Grace", double w=20.5)로 선언 한 후
Person p(5); 로 객체를 생성하면 오류가 발생하지 않습니다.
그러나 Person( string name="Grace", int id, double w=20.5) 이렇 듯 디폴트 매개 변수 값이 있는 string 변수 name이 디
폴트 매개 변수 값이 없는 int id보다 먼저 왔을 시 오류가 발생합니다.
그러므로 디폴트 값이 있는 매개변수를 선언할 시 오른쪽부터 채워져야 합니다.
'명품 C++ programming' 카테고리의 다른 글
명품 C++ programming 실습문제 6장 3번 - (2) (0) | 2019.04.12 |
---|---|
명품 C++ programming 실습문제 6장 3번 - (1) (0) | 2019.04.12 |
명품 C++ programming 실습문제 6장 2번 - (1) (0) | 2019.04.12 |
명품 C++ programming 실습문제 6장 1번 - (2) (0) | 2019.04.12 |
명품 C++ programming 실습문제 6장 1번 - (1) (0) | 2019.04.12 |