[c++] 구조체와 클래스의 복사 생성자
구조체와 클래스는 C++ 프로그래밍에서 데이터와 해당 데이터를 처리하는 함수를 함께 묶는 데 사용됩니다. 구조체와 클래스 모두 복사 생성자를 가질 수 있으며, 이를 통해 객체가 다른 객체로부터 복사될 때 어떻게 동작해야 하는지를 정의할 수 있습니다.
구조체의 복사 생성자
구조체는 C++에서 사용되는 사용자 정의 데이터 형식으로, 복사 생성자를 사용하면 해당 구조체의 객체가 다른 객체로 복사될 때 어떻게 동작해야 하는지를 정의할 수 있습니다. 구조체의 복사 생성자는 기본적으로 멤버변수들을 하나씩 복사하여 새로운 객체를 생성합니다.
다음은 간단한 구조체의 복사 생성자의 예시입니다:
struct Point {
int x;
int y;
Point(const Point &other) {
x = other.x;
y = other.y;
}
};
위의 예시에서 Point
구조체의 복사 생성자는 다른 Point
객체로부터 멤버변수 x
와 y
를 복사하여 새로운 객체를 만들고 있습니다.
클래스의 복사 생성자
클래스는 구조체와 비슷하게 동작하지만, 클래스는 기본적으로 private로 멤버들이 지정된다는 차이점이 있습니다. 클래스의 복사 생성자는 클래스의 객체가 다른 객체로 복사될 때 private 멤버에 접근하여 복사를 수행할 수 있도록 합니다.
다음은 간단한 클래스의 복사 생성자의 예시입니다:
class Rectangle {
private:
int width;
int height;
public:
Rectangle(const Rectangle &other) {
width = other.width;
height = other.height;
}
};
위의 예시에서 Rectangle
클래스의 복사 생성자는 private으로 지정된 멤버변수 width
와 height
에 접근하여 새로운 객체를 만들고 있습니다.
결론
구조체와 클래스는 복사 생성자를 사용하여 객체가 다른 객체로 복사될 때 어떻게 동작해야 하는지를 정의할 수 있습니다. 이로써 데이터의 안전한 복사와 적절한 초기화가 보장됩니다.
참고문헌: