C++ 一个类可以传递2个以上的私有成员吗?

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();

我在编译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();
}
那么,当我超过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();
}