我该如何初始化一个对象

时间:2017-01-26 19:06:26

标签: c++ object initialization

重点是初始化一个指向Mystic对象的指针,其值为“beep”任何想法?

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);
} 

2 个答案:

答案 0 :(得分:1)

接受字符串的构造函数不是公共的,因此您无法使用它。而是使用默认构造函数,然后使用setLabel方法。

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

答案 1 :(得分:0)

您尝试使用私有的构造函数,并且您只能访问公共构造函数,因此您必须将该构造函数设置为public,或者如果您要使用公共默认构造函数并初始化默认值Mystic() : label("default"){}