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 |