• 5476阅读
  • 2回复

默认参数的构造函数和默认构造函数 [复制链接]

上一主题 下一主题
离线qnewert
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-13
本菜鸟之前一直用的是C,因为要用到QT,所以最近QT和C++一起学。
今天看书碰到一个让我很模糊的问题,来源于书上一句话如下:
   当类定义了构造函数之后,程序员必须为它提供默认构造函数。
这句话我有点不能理解了,之前学习QT的时候,构造函数假设class stackDlg中提供了一个构造函数,原型如下:
stackDlg(QWdiget *parent=0, Qt::WindowFlags f=0);
那这个构造函数应该算作什么呢?按照上面那句话的意思,我应该还要为它提供一个默认构造函数,现在我没提供,它并不出错
是不是因为有默认参数列表,所以它才不用提供一个默认构造函数?
还是我理解错了。求高手解答。
qt,第一眼见到你,就深深的爱上你了。
离线qnewert
只看该作者 1楼 发表于: 2012-05-14
我是在C++ Premier plus第五版上看到的。311页,第十章,10.3默认构造函数那一节。
qt,第一眼见到你,就深深的爱上你了。
离线xiangyaoxuex

只看该作者 2楼 发表于: 2012-05-26
在我们没有定义构造函数时,系统会为我们提供一个默认的构造函数,它什么都不干,但是当我们定义了,那么系统就不会提供了,这时需要我们自定一个默认的构造函数,这个构造函数是不带参数的或者有参数,而且这些参数有默认的参数值,当这些有默认参数值的构造函数被调用时,如果你传参,那么它会覆盖对应默认参数值,如果你不传参,那么它就会使用默认的参数值
快速回复
限100 字节
 
上一个 下一个