永发信息网

在函数声明中这样写是什么意思

答案:2  悬赏:80  手机版
解决时间 2021-05-18 11:47
  • 提问者网友:不爱我么
  • 2021-05-17 19:37
class CardLayout : public QLayout { public: CardLayout(QWidget *parent, int dist) : QLayout(parent, 0, dist) {}这个构造函数是什么意思?
最佳答案
  • 五星知识达人网友:雾月
  • 2021-05-17 20:39

这整句话是声明一个类CardLayout ,继承QLayout ,继承方式为公有继承。


其构造函数 CardLayout(QWidget *parent, int dist) : QLayout(parent, 0, dist) {}。冒号后 面为调用基类的带参构造函数QLayout(parent, 0, dist) 。


因为子类会继承基类的成员变量,当子类对象被创建的时候会先调用基类的构造函数,然后再调用子类的构造函数,如果不写冒号后的部分,即删除这些 : QLayout(parent, 0, dist),将会调用基类的默认构造函数。

全部回答
  • 1楼网友:渡鹤影
  • 2021-05-17 22:07
它可以用作一种格式上的提示表明函数的定义可能在另一个源文件中, 但在extern int f();和int f();之间并没有实质的区别。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯