복사생성자

전공 공부/C++ / / 2021. 5. 20. 13:33
728x90
#include <iostream>
using namespace std;

class Circle {
private:
   int radius;
public:
   Circle(const Circle& c); // 복사 생성자 선언
   Circle() { radius = 1; }
   Circle(int radius) { this->radius = radius; }
   double getArea() { return 3.14 * radius * radius; }
};

Circle::Circle(const Circle& c) { // 복사 생성자 구현
   this->radius = c.radius;
   cout << "복사 생성자 실행 radius = " << radius << endl;
}

int main() {
   Circle src(30); // src 객체의  보통 생성자 호출
   Circle dest(src); // dest 객체의 복사 생성자 호출

   cout << "원본의 면적 = " << src.getArea() << endl;
   cout << "사본의 면적 = " << dest.getArea() << endl;
}

 

# 디폴트 복사 생성자

#include <iostream>
using namespace std;

class Circle {
private:
   int radius;
public:
   Circle() { radius = 1; }
   Circle(int radius) { this->radius = radius; }
   double getArea() { return 3.14 * radius * radius; }
};


int main() {
   cout << "2018305065 전유정" << endl;

   Circle src(30); // src 객체의  보통 생성자 호출
   Circle dest(src); // dest 객체의 복사 생성자 호출

   cout << "원본의 면적 = " << src.getArea() << endl;
   cout << "사본의 면적 = " << dest.getArea() << endl;
}

반응형

'전공 공부 > C++' 카테고리의 다른 글

클래스 Circle 참조에 의한 호출  (0) 2021.05.26
클래스 Book 얕은 복사 생성자  (0) 2021.05.26
average 함수(call by address)  (0) 2021.05.20
참조 변수  (0) 2021.05.13
객체 치환  (0) 2021.05.13
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기