템플릿 작성 및 컴포지션 스타일 코딩에 약간의 문제가 있습니다. * this 매개 변수를 사용하여 다른 개체의 생성자 안에 개체가 만들어졌습니다. 미안, 내가 분명하지 않다면. 코드는 다음과 같습니다 다음 outer.h 파일에서사용자 정의 클래스를 매개 변수로 사용하여 템플릿 작성
다음 inner.h 파일
template<typename T>
class inner {
public:
inner(T &name);
private:
int top;
int bot;
};
template<typename T>
inner<T>::inner(T &name) {
top = name.getLength() /2;
bot = -name.getLength()/2;
}
이 허용되는 경우 모르겠어요에서
class outer {
public:
outer(int w, int l);
int getWidth();
int getLength();
private:
inner<outer> test(*this);
int width;
int length;
};
outer::outer(int w, int l) {
width = w;
length = l;
}
int outer::getLength() {
return length;
}
'내가 할 수있는 이 문제를 해결하는 온라인 자료를 찾으십시오. 컴파일러가 outer.h의 * this 문에 문제가 있습니다.
미리 도움을 주셔서 감사합니다.
C++ 11로 컴파일하고 컴파일러에서 해당 기능을 지원하는지 확인하십시오. – chris
@chris는'()'이 아니라'='또는'{}'만 사용합니다. – juanchopanza
@ juanchopanza, 오 그래, 맞아. 어쨌든 언제든지 {}을 사용합니다. – chris