아래와 같이 생성자에 인수를받는 간단한 클래스를 만들었습니다.클래스에 대한 arguements를 사용하여 복사 생성자 만들기
class Jam
{
int age;
std::string name;
Jam *jam;
Jam(std::string argName) {
name = argName;
}
};
그것은 인수를 받아 초기화 Jam
의 전달 매개 변수 name
. 유일한 문제는 값을 복사하여 포인터를 기존 클래스에 초기화 할 수 있도록 Jam
다른 복사본을 생성자에 전달할 수 싶습니다. 일반적으로 C++에서는 Jam *jam = new Jam(existingJam);
을 지정할 수 있으며 기본적으로 복사됩니다. 그러나 이미 매개 변수로 std::string argName
이 있으므로이 작업을 거부합니다.
나는 당신 자신의 복사본 생성자를 만드는 방법을 설명하는 기사를 읽었지 만 오히려 지루하고 각 클래스 멤버를 개별적으로 복사하는 것을 포함합니다. 이는 10 개 이상의 데이터 멤버가있는 클래스에 대해서는별로 의미가 없을 것 같습니다. 개별 회원을 개별적으로 초기화하는 것보다 더 나은 방법이 있습니까? 하나를 직접 작성하지 않은 경우
Jam::Jam(std::string argName, Jam *argJam)
{
age = argJam->age;
//etc...
}
은 복사 생성자가 아니며 추가 문자열 인수가 있습니다. –
어떻게하면 죽을 수 죽으면? 문제가 무엇입니까? – juanchopanza