如何初始化对象

how can i initialize an object

本文关键字:对象 初始化      更新时间:2023-10-16

重点是初始化一个指向 Mystic 对象的指针,值为"哔哔"有什么想法吗?

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

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

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

尝试使用的构造函数是一个私有的,并且你只能访问公共的,所以你必须使该构造函数成为公共的,或者如果你想使用公共默认构造函数并初始化默认值Mystic() : label("default"){}