2017-01-26 1 views
0

요점은 입니다 "비프"값을 가진 신비주의 개체에 대한 포인터를 초기화 어떤 생각?어떻게 개체를 초기화 할 수 있습니다

class Mystic { 
private: 
string label; 
Mystic(string & newlbl) { setLabel (newlbl)}; 
public: 
void setLabel(string newlbl){label = newlbl;} 
Mystic() : label(){}; 
}; 
int main(int argc, char *argv[]) 
{ 
... //i tried this 
     //string *p1 = new string("beep"); 
     //Mystic myst(p1); 
} 
+0

혼란스러운 포인터와 참조에 관한이 질문 이후로 일부 반 패턴을 표시하면 좋은 C++ 책으로 가장 잘 대답 할 수 있습니다. 아마도 [C++ 권장 도서 목록] (http://stackoverflow.com/questions/388242/)을 살펴 봐야 할 것입니다. – jaggedSpire

답변

1

문자열을 사용하는 생성자는 공개되지 않으므로 사용할 수 없습니다. 대신 기본 생성자를 사용한 다음 setLabel 메서드를 사용하십시오.

int main(int argc, char** argv) { 
    Mystic m; 
    m.setLabel("beep"); 
    Mystic* p = &m; 
} 
0

생성자는 그에게 개인을 사용하려고 시도하고, 당신이 생성자를 공개 할 수 있도록 만, 공공 하나에 액세스하거나 기본값을 공개 기본 생성자를 사용하여 초기화 할 경우 Mystic() : label("default"){}