본문 바로가기

C++ 언어/연습문제

C++ 언어 연습문제26

[문제]

아래의 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