将结构传递给构造函数
Pass a structure to a constructor
我在这里做错了什么?我需要制作第二个按值接受结构的构造函数。
注.h
class Traymenu;
class Note : public QWidget
{
Q_OBJECT
public:
explicit Note(Traymenu *trayMenuIn, QWidget *parent = 0); //Working
explicit Note(Traymenu *trayMenuIn, struct prop bla, QWidget *parent = 0); //ERROR forward declaration of "struct prop"
注:H(交替)
class Traymenu;
struct prop; //ERROR: forward declaration of "struct prop"
class Note : public QWidget
{
Q_OBJECT
public:
explicit Note(Traymenu *trayMenuIn, QWidget *parent = 0);
explicit Note(Traymenu *trayMenuIn, struct prop bla, QWidget *parent = 0); //ERROR forward declaration of "struct prop"
注意.cpp
#include "note.h"
Note::Note(Traymenu *trayMenuIn, struct prop bla, QWidget *parent) : //ERROR: bla has incomplete type
您正在按值接受结构,这要求其完整定义在此时可用(它必须是complete type
)。通过引用传递以避免这种情况:
Note(Traymenu*, const prop& bla); // reference to const is almost
// equivalent to pass by value
如果确实需要副本,请包括prop
的定义。
如果要对需要完成的类型执行任何操作,则仍需要在实现文件中包括prop
的定义。
在变量声明中省略 struct
关键字,它不是C++中必需的,我认为这是不好的风格。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 在类构造函数中使用结构变量
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 在类构造函数中定义结构变量的参数
- 我应该在C++中将这些结构用作参数化构造函数吗?
- 初始化构造函数C++中结构的向量
- C++ 带有默认参数的结构,可选择在构造函数中更改
- 我们可以用参数化构造函数初始化结构的数组吗?
- 使用模板化结构作为构造函数参数
- 具有位域的结构的 Constexpr 构造函数
- 未调用的初始化静态thread_local结构的构造函数和析构函数
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 如何在继承层次结构中调用具有默认参数的构造函数?
- 使用构造函数初始化结构还是在之后设置其值更好?
- 嵌套的模板结构构造函数实现
- C++:如何在结构中定义类实例.类具有参数化的构造函数
- 结构中的默认成员值或默认构造函数参数
- c++ 17 中结构自动定义构造函数的规则是什么?
- 在结构的构造函数中使用类方法赋值变量