Dialog.h
#include "WBasic.h"
#include "WButton.h"
#include "WData.h"
#ifndef WDIALOG_H_INCLUDED
#define WDIALOG_H_INCLUDED
class WDialog : public WBasic
{
private:
WButton wB;
WData wD;
public:
//Constructor
WDialog(const int& e = 0, const WButton& = WButton(0,0), const WData& = WData(0,0,0));
~WDialog();
};
#endif // WDIALOG_H_INCLUDED
Dialog.cpp
#include <iostream>
#include "WDialog.h"
WDialog::WDialog(const int& e, const WButton& WBUTTON, const WData& WDATA) :
WBasic(e), wB(WBUTTON), wD(WDATA)
{
}
上面的代码效果很好,但是我试图让“WButton wB”将它改为“WButton wB [3];”
class WDialog : public WBasic
{
private:
WButton wB[3];
WData wD;
};
但后来我不知道如何处理构造函数。
答案 0 :(得分:0)
您可以使用vector来解决此问题。 我在下面写了一个小例子。
#include <iostream>
#include <vector>
using namespace std;
class A{
};
class B{
public:
B():vec (4,A())
{
}
private :
vector<A> vec;
};
int main() {
// your code goes here
B obj();
return 0;
}
您可以观察我如何使用三个A类对象初始化矢量vec。
答案 1 :(得分:0)
在我看来,如果可以(您的编译器支持C ++ 11)更喜欢std :: array
#include <array>
std::array<WButton, 3> wB;
然后在你的构造函数中使用初始化列表:
WBasic(e),
wB{WButton(...), WButton(...), WButton(...)},
wD(WDATA)