首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

继承从CButton 的自定义类,需要调用CButton:CButton() 构造函数吗

2013-12-10 
继承自CButton 的自定义类,需要调用CButton::CButton() 构造函数吗?继承自CButton 的自定义类,需要调用CBu

继承自CButton 的自定义类,需要调用CButton::CButton() 构造函数吗?
继承自CButton 的自定义类,需要调用CButton::CButton() 构造函数吗?

我使用VS2010 中自带的添加类功能,写了一个自定义的类,继承自CButton 类,VS自动帮我生成了头文件和实现文件,同时生成构造函数和析构函数。但有一点有点奇怪的是,在构造函数的实现中,并没有显示调用CButton 类的构造函数。

我想问,这个我需要不需要给添加上去。
VS的这个机制是不允许调用构造函数,还是没有必要调用它的构造函数。

请大神指教!!!!
[解决办法]
 不调用可以初始化
CMyButton::CMyButton()   
  :   a(1),   b(1),   c(1),   d(1),   e(1),   f(1),   g(1),   h(1),   i(0),   
      j(0),   k(0),   l(0),   m(0)   
  {   ...   }   
[解决办法]
当子类被实例化之后,一定会自动调用父类的构造函数的。
[解决办法]

引用:
Quote: 引用:

如果不传递构造函数的参数就不需要


CButton 的构造函数是没有参数的呢!

引用:
不需要你手动调


另外,你们都说的是不需要手动调用。我还想清楚一点就是,VS的机制是否就是告诉我们最好别去调用CButton 的构造函数?
还有就是从C++的继承机制来说,子类都应该调用父类的构造函数才对的啊,否则一些数据就不能被初始化,而析构函数却会被调用。这似乎不合常理!!!


LZ你自己测试一下就明白了,创建父类A 子类B 孙类C,定义C c;并在其上设置断点,按F11,逐条执行,看看你各个构造函数是怎么被调用的
[解决办法]
所以:
VS的这个机制是不允许调用构造函数,还是没有必要调用它的构造函数。

的答案是:不用写出来,已经调用了

热点排行