C++ 一个类可以传递2个以上的私有成员吗?
我在编译Qt代码时遇到问题。我不知道为什么一个班级不能传递两个以上的私人成员。代码如下: 在头文件中(名为wind.h) main.cpp应该是这样的C++ 一个类可以传递2个以上的私有成员吗?,c++,qt,private,C++,Qt,Private,我在编译Qt代码时遇到问题。我不知道为什么一个班级不能传递两个以上的私人成员。代码如下: 在头文件中(名为wind.h) main.cpp应该是这样的 #include <QApplication> #include "wind.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); second sec; sec.show(); return app.exec();
#include <QApplication>
#include "wind.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
second sec;
sec.show();
return app.exec();
}
那么,当我超过2名私人会员时,为什么它不起作用呢?我怎样才能修好它呢
谢谢!:) 代码的工作方式如图所示。作为参考,这里有一个单一文件示例:
#include <QApplication>
#include <QWidget>
#include <QPushButton>
class Second : public QWidget
{
public:
Second();
private:
QPushButton *bout1;
QPushButton *bout2;
QPushButton *bout3;
};
Second::Second() : QWidget()
{
setFixedSize(700, 150);
bout1 = new QPushButton("button1", this);
bout2 = new QPushButton("button2", this);
bout3 = new QPushButton("button3", this);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Second sec;
sec.show();
return a.exec();
}
#包括
#包括
#包括
第二类:公共QWidget
{
公众:
第二个();
私人:
QPushButton*bout1;
QPushButton*bout2;
QPushButton*bout3;
};
第二个::第二个():QWidget()
{
设置固定大小(700150);
bout1=新的QPushButton(“按钮1”,本);
bout2=新的QPushButton(“按钮2”,此按钮);
bout3=新的QPushButton(“按钮3”,此按钮);
}
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
第二秒;
第()节;
返回a.exec();
}
如果不传递任何参数,则不需要在初始值设定项列表中显式列出基类构造函数。您也不需要显式地在堆上分配任何内容。所以,这是一种更好的风格:
#include <QApplication>
#include <QWidget>
#include <QPushButton>
class Second : public QWidget
{
QPushButton bout1, bout2, bout3;
public:
Second();
};
Second::Second() :
bout1("button1", this),
bout2("button2", this),
bout3("button3", this)
{
setFixedSize(700, 150);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Second sec;
sec.show();
return a.exec();
}
#包括
#包括
#包括
第二类:公共QWidget
{
QPUSH按钮bout1、bout2、bout3;
公众:
第二个();
};
第二个::第二个()
bout1(“按钮1”,这个),
bout2(“按钮2”,此),
bout3(“按钮3”,本)
{
设置固定大小(700150);
}
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
第二秒;
第()节;
返回a.exec();
}
这听起来比Qt一个更像C++问题。如果可能的话,请使示例更加独立,也更加精简。不管怎么说,“不起作用”是对任何试图提供帮助的人来说最不有用的描述。请取消对该行的注释,并对另一行进行注释,仍然有效?Raydel Miranda它仍然有效,正如我所说,我没有“我似乎不能接受超过2名私人会员,克里斯,好吧,我会尽量减少;)请注意,我所说的自包含是指可以粘贴到在线编译器中的内容。如果您的问题在没有任何Qt的情况下仍然发生,那么就没有Qt。正如我曾经说过的,我要再次指出:您的代码,如图所示,可以编译、运行并且不会崩溃。我已经把它放进了一个持续集成系统中,该系统在十几种不同的配置上编译和测试,Qt版本包括4.8、5.0、5.1和5.2。你的问题在别处。您发布的代码没有问题。这不是最好的代码,但它是正确的。
//bout3 = new QPushButton("button3", this);
#include <QApplication>
#include <QWidget>
#include <QPushButton>
class Second : public QWidget
{
public:
Second();
private:
QPushButton *bout1;
QPushButton *bout2;
QPushButton *bout3;
};
Second::Second() : QWidget()
{
setFixedSize(700, 150);
bout1 = new QPushButton("button1", this);
bout2 = new QPushButton("button2", this);
bout3 = new QPushButton("button3", this);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Second sec;
sec.show();
return a.exec();
}
#include <QApplication>
#include <QWidget>
#include <QPushButton>
class Second : public QWidget
{
QPushButton bout1, bout2, bout3;
public:
Second();
};
Second::Second() :
bout1("button1", this),
bout2("button2", this),
bout3("button3", this)
{
setFixedSize(700, 150);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Second sec;
sec.show();
return a.exec();
}