본문 바로가기
프로그램/C++ 1000제

C++ 112제] 어서와! C++은 처음이지! CHAPTER 09. PROGRAMMING EXEPCISE 2. p393

by 건티 2024. 8. 11.
728x90

출처 : 반크_백제역사 유적지구과 이스탐블 역사지구

 

참고풀이]

#include <iostream>
#include <string>
using namespace std;

class Line {
   public:
      int getLength(void);
      Line(int len);
      Line(const Line& other);//복사 생성자 선언
      ~Line();

   private:
      int* ptr;
};

Line::Line(int len) {
   cout << "일반 생성자" << endl;
   ptr = new int;
   *ptr = len;
}

Line::Line(const Line& other) //복사생성자 구현
{
   cout << "복사 생성자" << endl;
   this -> ptr = new int;
   this -> ptr = other.ptr;
}

Line::~Line() {
}

int Line::getLength(void) {
   return *ptr;
}

int main()
{
   Line l1(10);//일반 생성자
   Line l2(l1);//복사 생성자
   Line l3 = l1;//복사 생성자

   cout << "선의 길이: " << l2.getLength() << endl;

   Line l4{ l1 };//복사 생성자
   cout << "선의 길이: " << l4.getLength() << endl;

   return 0;
}

 

참고풀이 결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 봄

 

반응형

댓글