세 개의 배열을 포함하는 삼각형을 나타내는 간단한 클래스가 있습니다.C++ 배열 형식이 복사 생성자에서 할당 할 수 없습니다.
class Triangle
{
public:
double X[3];
double Y[3];
unsigned char color[3];
};
힙에이 클래스의 객체를 만든 다음 배열의 값을 사용할 함수에 전달하려고합니다. 이러한 객체를 전달하기 때문에 전체 복사본을 만들기 위해 복사 생성자가 필요합니다. 문제는 복사 생성자에 새 배열을 할당 할 때 발생합니다.
나는 다음과 같은 오류가 계속Triangle (const Triangle &obj)
{
X = new double[3];
Y = new double[3];
color = new unsigned char[3];
for (int i=0; i<3; ++i)
{
X[i] = obj.X[i];
Y[i] = obj.Y[i];
color[i] = obj.color[i];
}
}
: "오류 : 배열 유형을 '더블 [3]'할당 할 수없는"세 배열의 각
이것은 내가 지금까지 가지고있는 것입니다.
나는 this video에서 논의 된 것과 같은 접근법을 취하고 있으며 왜 새로운 배열을 만들 수 없는지 알 수 없다. this question에 대한 답변도 같은 접근법을 사용합니다.
통찰력이있는 사람이 있습니까? 나는 정말로 어리석은 무엇인가를 놓치고있는 것처럼 느낀다.
세 가지 동적 할당을 모두 잃습니다. 아무 것도 필요하지 않습니다. 사실, 전체 생성자를 잃고 기본값을 사용하십시오. – WhozCraig
YouTube 동영상을 보면서 C++을 배우려고하지 마십시오. 좋은 책을 구하십시오. –