나는 n 개의 입자로 구성된 시스템을 가지고 있습니다. Particle 객체는 여러 매개 변수 (double이라고 함)를 인수로 취하는 생성자를 사용하여 초기화 할 수 있습니다.객체 생성을위한 인수를 사용하는 생성자를 사용하여 객체 배열 초기화
Particle p(para1, para2 ... , paraN);
이제는 n- 입자 배열이 필요한 시스템을 갖게되었습니다. Particle 매개 변수와 함께 객체 수를 가져 와서 n-Particle 배열을 만드는 생성자를 작성하려고합니다.
는class System {
public:
Particle p[]; //declare dynamic array
System() {}
//Constructor
System(int n, para1, para2 ... , paraN)
{
Particle p[n]; //Particle array of size n
for(int i=0; i<n; i++)
{
Particle temp(para1, para2 ... , paraN);
p[i] = temp;
}
}
};
프로그램을 컴파일하고 다음과 같은 오류를 제공하지 않습니다 :
error: no match for ‘operator=’ in ‘p[i] = tempp’
note: candidate is:
note: Particle& Particle::operator=(const Particle&)
note: no known conversion for argument 1 from ‘Particle(double, double, double, double)’ to ‘const Particle&’
내가 C에 새로운 오전 ++ 및 일반적으로 OOP
나는 다음 시도했다. 이것을 극복하는 방법에 대한 도움은 크게 감사하겠습니다. 당신이p[i] = temp
사용하는 경우
생성자 내의 배열 p는 같은 이름의 속성 p를 음영 처리합니다. 대신에'p = new Particle [n]'과 같은 것을 사용하십시오. – Sjlver
특히, 크기 n의 입자 배열은 P [n]이 같은 것을 의미 함을 의미하지 않습니다 – doctorlove
이것은 정확한 코드와 오류입니다 : 오류는 'p [i]의'operator = = tempp '이고 코드는 p [i] = temp라고 말합니다; – doctorlove