小编Cod*_*der的帖子

在创建派生类Object时将参数传递给基类构造函数

考虑两个类AB

class A
{
public:
    A(int);
    ~A();
};

class B : public A
{
public:
    B(int);
    ~B();
};


int main()
{
    A* aobj;
    B* bobj = new bobj(5);    
}
Run Code Online (Sandbox Code Playgroud)

现在这个类B继承了A.

我想创建一个对象B.我知道创建一个派生类对象,也会调用基类构造函数,但这是没有任何参数的默认构造函数.

我想要的是B获取一个参数(比如5),并将其传递给构造函数A.请展示一些代码来演示这个概念.

c++ oop constructor

25
推荐指数
3
解决办法
4万
查看次数

无法将信号连接到main()内的函数

我知道要在类中使用Qt的信号和插槽机制,该类必须包含Q_OBJECT宏,但我试图使用信号和插槽main(),而不使用任何类.

到目前为止,这是我的代码:

#include <QApplication>
#include <QWidget>
#include <QTextEdit>
#include <QtGui>

void saveText();

int main(int argv, char **args)
 {
    QApplication app(argv, args);
    QTextEdit textEdit;
    QPushButton saveButton("Save!");
    QPushButton exitButton("Exit!");
    QObject::connect(&exitButton,SIGNAL(clicked()),qApp,SLOT(quit()));
    QObject::connect(&saveButton,SIGNAL(clicked()),qApp,SLOT(saveText()));

    QVBoxLayout vlyt;
    vlyt.addWidget(&textEdit);
    vlyt.addWidget(&exitButton);
    vlyt.addWidget(&saveButton);

    QWidget mainWindow;
    mainWindow.setLayout(&vlyt);
    mainWindow.show();

    return app.exec();
}

void saveText()
{
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

这是生成的GUI窗口:

GUI窗口

从上面的代码中,退出按钮连接到quit(),这是一个Qt函数,当点击它工作.分配给该功能的保存按钮saveText()配置为退出,但不执行此操作.

请告诉我在理解Qt中的信号和插槽时出错了.

c++ user-interface qt qt4

6
推荐指数
1
解决办法
1万
查看次数

switch case是循环还是条件构造?

我在接受采访时被问到这个问题.我回答说这是一个有条件的结构,因为

  • 它执行一次,不像一个具有多次执行能力的循环.
  • 没有循环控制机制,只有基于不同情况的条件切换.

那么我的回答是对还是错,有更好的答案吗?

他还问我说明break;语句与switch-case一起使用的原因,因为break;它只适用于循环.这个问题我无法回答.

c c++

4
推荐指数
2
解决办法
1691
查看次数

标签 统计

c++ ×3

c ×1

constructor ×1

oop ×1

qt ×1

qt4 ×1

user-interface ×1