c++ - 这可能会出什么问题?

标签 c++ class

class root
{
    string name;
    public:
    root();
    root(string Name)
    {
        Name=name;
    }
    ~root();
    void setName(string Name)
    {
        name=Name;
    }

    string getName()
    {
        return name;
    }
};

int main()
{
    string name("name");
    root Root(name);
    Root.setName("name");
    cout<<Root.getName();
}

那我的程序就顺利运行了,但是为什么我的程序运行不起来

   root Root; //this had to be legal, right?

而且,我为什么要有

root Root(name); //declaring?

再一次

root setName(name); 

它是否必须与:

root Root; //??

最佳答案

  1. 添加到您的 root() 构造函数主体 {}
  2. 修复您的 root( string Name ) 构造函数。应该是:

.

root(string Name)
{
    name=Name; // <--- notice reversed order.
}

如果我可以建议,您可以改用 const& 引用:

root( const string& Name )
{
    name=Name;
}

关于c++ - 这可能会出什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23002120/

相关文章:

C++ 复杂类的运算符 >> 中的不明确重载

c++ - 在编译时验证对象是否创建为 shared_ptr

C++继承维度计算器程序错误: "function call missing argument list"

C++ 函数 = 删除

java - 没有发现类定义错误

c++ - 未定义对 'vtable for class' 构造函数的引用

c++ - 按值传递的参数在 visual studio 2015 x64 调试器中显示不正确?

c++ - 在尝试使用 SFINAE 禁用功能时,我是否创建了未定义的行为?

c++ - 如何通过 python 代码将命令行参数传递给 C++ 文件?

oop - 类是面向对象语言中的对象吗