gpt4 book ai didi

c++ - 默认构造函数 C++ 错误

转载 作者:太空狗 更新时间:2023-10-29 23:34:11 25 4
gpt4 key购买 nike

我需要有关类(class) build 的帮助。在我的类(class)中,我使用了复制构造函数和 operator= 来防止编译器创建它们。在我的主程序中,当我尝试创建该类的实例时,我收到一条错误消息“该类不存在默认构造函数”。

可能是什么问题?

这是我的代码片段。

class netlist {
netlist(const netlist &);
netlist &operator=(const netlist &);
std::map<std::string, net *> nets_;
}; // class netlist

在我的主要功能中,我正在使用:

netlist nl;

这是我得到错误的地方。我提供了复制构造函数声明,所以它们应该不是问题。

如有任何帮助,我将不胜感激。提前致谢。

最佳答案

代码有两个问题-

  1. 默认情况下,类(class)成员是私有(private)
  2. “我收到一条错误消息,提示“该类不存在默认构造函数””。

因为如果任何类型的构造函数作为类声明的一部分提供(netlist 类在这种情况下有一个复制构造函数),则不提供默认构造函数(即不带参数的构造函数)编译器。

netlist nl;  // And this invokes call to the default constructor and so
// the error

网表.h

class netlist {

public: // Added
netlist(); // This just a declaration. Should provide the definition.
netlist(const netlist &);
netlist &operator=(const netlist &);
std::map<std::string, net *> nets_;
}; // class netlist

网表.cpp

netlist::netlist()
{
// .....
}

// Other definitions

关于c++ - 默认构造函数 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com