C++에서 다음 클래스를 작성합니다.중복되는 식별자
SImageProc.cpp:5:33: error: no matching function for call to 'SImage::SImage()'
SImageProc 클래스를 구현할 때이 클래스의 instantions로 내 매개 변수를 해석 왜 내가 알아낼 수 없습니다 :
class SImage {
...
public:
SImage(char*);
}
class SImageProc {
SImage S;
...
public:
SImageProc(SImage Im) { S = Im; };
}
는 컴파일 할 때 나는 이것이 내가 내 생성자를 구현하는 라인을 참조받을 수 있습니다.
이것은 직관적이지 않습니다. 나는 왜 매개 변수가 기본 생성자를 필요로하는지 이해하지 못한다. SImageProc 클래스에 기존 SImage 객체를 값으로 전달하고 싶습니다. –
@Benji 논리는 특별한 사용자 정의 생성자가있는 경우 기본 생성자에서 특별한 작업을 수행하려고하거나 전혀 원하지 않는다는 것입니다. 그러나 이것이 당신을 가치로 전달하지 못하게합니다. 그건 전혀 관련이없는 문제입니다. – juanchopanza
SImageProc 클래스에 기본 생성자로 정의하려는 SImage 필드가 있음을 설명하기 위해 코드를 업데이트했습니다. SImage 클래스의 SImageProc 클래스가이 필드를 설정하기 위해 값으로 전달되는 것이 이상적입니다. 이것은 내 혼란이 어디에, 왜 이것이 매개 변수의 생성자에 의존하는지 모르겠다. –