0
我想我的初始化私有变量“DressMen黑”进级对话/ QTC++初始化私有变量类到另一个类
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent=0,DressMen b);
~Dialog();
........
public slots:
........
private slots:
.............
private:
Ui::Dialog *ui;
..........
DressMen black;
..........
};
而且我DressMen类的.h是
class DressMen {
public:
DressMen();
~DressMen(void);
DressMen(std::string name);
.................
}
DressMen.cpp是
DressMen::DressMen()
{
//set values for default constructor
..................
}
DressMen::DressMen(std::string name){
setType(name);
if(name=="black1"){
......
}
}
现在在我的对话框::对话框我想我的init BLACK1 DressMen等于私有变量 - DressMen black(“black1”);
所以我写
Dialog::Dialog(QWidget *parent,DressMen b) : QDialog(parent),ui(new Ui::Dialog),black(b("black1")) {
.....
}
但是编译器错误我
dialog.h:23: error: default argument missing for parameter 2 of 'Dialog::Dialog(QWidget*, DressMen)'
explicit Dialog(QWidget *parent=0,DressMen b);
我不明白,因为我在实践中C++是......
感谢
如果一个函数有一个默认参数,那么它也必须具有所有后续参数的默认参数。如果你只想要一个参数有一个默认参数,那么你需要把它放在最后。 – Brian