c++ - 构造函数无法重新声明。为什么?

标签 c++ qt constructor compiler-errors

我在Qt C++程序中遇到了这个问题,它说“无法重新声明构造函数”。我该如何解决?

class MagicTransaction : public QObject
{
  Q_OBJECT
public:
  explicit MagicTransaction ( QObject* parent = 0 );
private slots:
  void start ( );
  MagicTransaction( QObject* parent );
};

最佳答案

您有两个MagicTransaction构造函数的声明,它们带有一个QObject*参数-一个在public节中,一个在private节中(请注意,默认值和explicit修饰符不参与名称修饰)。只需删除一个就可以了:

class MagicTransaction : public QObject
{
  Q_OBJECT
public:
  explicit MagicTransaction ( QObject* parent = 0 );
private slots:
  void start ( );
  // second definition removed here
};

关于c++ - 构造函数无法重新声明。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59520500/

相关文章:

C++ 形状库异常处理

c++ - 什么时候我应该更喜欢 boost::regex(或 boost::xpressive)而不是 boost::algorithm

c++ - 在雷达图像上绘制区域而不是点

c++ - 强制 Qt5 从 exe 目录加载 SSL dll

c++ - 错误 : no matching constructor for initialization of

c++ - 在 2018 年的 C++11 及更高版本中,helper init() 函数是否被视为错误形式?

java - 在 C++ 中的 Java native (JNI) 方法中,在 jdoubleArray 和 vector<double> 之间进行转换

qt - QString 删除最后一个字符

c# - 为什么 C# 允许在非静态构造函数中初始化静态类变量?

javascript - JS,原型(prototype): Having a constructor,如何获取实例?