[문제]
아래의 main문과 실행결과를 보고 클래스를 정의하라.
조건1) 인자를 1개 전달 받는 private 생성자를 추가할 것
int main()
{
AAA base;
base.ShowNum();
AAA& obj1 = base.CreateInitObj(3);
obj1.ShowNum();
AAA& obj2 = base.CreateInitObj(12);
obj2.ShowNum();
delete& obj1;
delete& obj2;
return 0;
}
[실행 결과]
0
3
12
[코드]
#include<iostream>
using namespace std;
class AAA
{
private:
int num;
public:
AAA() :num(0) {}
AAA& CreateInitObj(int n)
{
AAA* ptr = new AAA(n);
return *ptr;
}
void ShowNum() const { cout << num << endl; }
private:
AAA(int n) :num(n) {}
};
int main()
{
AAA base;
base.ShowNum();
AAA& obj1 = base.CreateInitObj(3);
obj1.ShowNum();
AAA& obj2 = base.CreateInitObj(12);
obj2.ShowNum();
delete& obj1;
delete& obj2;
return 0;
}
<참고>
윤성우의 열혈 C++ 프로그래밍
'C++ 언어 > 연습문제' 카테고리의 다른 글
C++ 언어 연습문제28 (0) | 2022.11.02 |
---|---|
C++ 언어 연습문제27 (0) | 2022.11.01 |
C++ 언어 연습문제25 (0) | 2022.10.25 |
C++ 언어 연습문제24 (0) | 2022.10.24 |
C++ 언어 연습문제23 (0) | 2022.10.24 |