11
C++ 03 스타일로 잘 작동하는 한 쌍의 생성자가 있습니다. 생성자 중 하나는위임하는 생성자 : 위임하는 생성자의 이니셜 라이저는 혼자 나타나야합니다.
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), win(new RawWindow(*this))
{
refresh();
}
...
내가 조금이를 neaten하는 새로운 C++ (11) 위임의 ctor 기능을 사용하는 방법을 알아 내려고 노력하고 있어요 ... 슈퍼 클래스 (또는 기본 클래스) 생성자를 호출합니다. 그러나 다음 코드는 다음과 같은 컴파일러 오류 ...
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), Window(){}
이 주변에 어떤 방법이 있나요?을 제공합니다 "만 표시해야 위임 생성자에 대한 초기화"...
"이 예제에서는 생성자 위임을 피하십시오."- 코드가 작동하는 것을 보면 (감사 +1),이 제안을하는 이유를 확장 할 수 있습니까? – learnvst
@learnvst 그들은 공상적인 기본 주장으로 행동하고 있습니다. 좀 더 읽기 쉽도록 기본 인수 또는 원래 코드를 찾습니다. – Pubby
그래,'Window (Rectangle()) '는 좀 이상해 보입니다. 네가 어디에서 왔는지 알 겠어. – learnvst