hur.cn - 华软网

 热门搜索

默认构造函数和复制控制疑问集合

  作者:未知    来源:网络    更新时间:2011/9/28
  近期看c++,越看问题越多,反而有时会考虑的面多了,也会考虑对其他方面的影响。虽然有些据称为“月经的问题”,综合绕成一团就要崩溃。。。

   1》 默认构造函数初始化指针时会把指针初始化为null或者0吗;

   2》 每个构造函数(包括默认构造)定义的时候都需要显示的初始化成员吗,可不可以只初始化类类型或指针,内置类型不再显示的初始化,执行自身默认;

   3》 派生类的每个构造函数都要初始化基类吗?如果可能可不可以都使用基类的默认构造函数初始化(指针成员的除外);
   
   4》 如果一个类存在显示的复制构造函数,  那么可以“只”显示的对他的指针成员操作,其他内置类型,让构造函数默认初始化他们,这种做法可以吗(因为复制控制主要针对的指针成员,所以产生这种疑问);

   5》 同样如第4个,如果是赋值操作呢,只显示的对指针成员操作,内置类型不做操作(赋值操作能默认处理吗);
    
  (4)(5)他们应该非常类似,主要不理解是因为我不知道他们内部具体做什么事情,如何对指针成员操作的。

    其他请教,实际情况中一个类可能有几个或者十几个成员,难道都要显示的初始化呀。如果初始化列表那多么的费劲,这也是我一直在问的:默认构造函数存在的情况,能否显示初始化一些必要的,其他内置类型执行自身默认。
    总结:派生类的复制控制如果显示定义了,需要显示的操作基类的复制控制,包括析构。
 
   
 终于把最近总结的问题说完了,相信新手对复制控制和默认构造这一块都有些疑惑。请经验者给我们指导,我也会继续查找资料实验,同时用此贴来结束近期对c++primer的学习。啊。。。。。。。。。。。。。。。。
    
  
---华软 网友回答---
1》 默认构造函数初始化指针时会把指针初始化为null或者0吗;
不会

自己写个测试代码,然后在不同的操作系统及ide上分别测试
---华软网友回复---
总之,如果在构造函数里,不对成员做初始化,则结果依赖编译器
所以,还是不要偷懒了
---华软网友回复---
从你提出的问题,可以看出你对构造函数的理解并不深刻,其作用就更不用提了。这是你提出的问题的重点,也是你想解决问题的重点。

小提示:
计算机能做的事情,本质上就三样,与运算、或运算和非运算。在其上引申出来的,和理解计算机直接相关的事情就两样,枚举和加法。

勤动手是解决问题的根本。
---华软网友回复---
  1》 默认构造函数初始化指针时会把指针初始化为null或者0吗;
   不会。 

  2》 每个构造函数(包括默认构造)定义的时候都需要显示的初始化成员吗,可不可以只初始化类类型或指针,内置类型不再显示的初始化,执行自身默认;

    显式不是必须,但通常需要指定默认值

  3》 派生类的每个构造函数都要初始化基类吗?如果可能可不可以都使用基类的默认构造函数初始化(指针成员的除外);
    派生类的构造函数默认是先调用基类的构造函数滴
    
  4》 如果一个类存在显示的复制构造函数, 那么可以“只”显示的对他的指针成员操作,其他内置类型,让构造函数默认初始化他们,这种做法可以吗(因为复制控制主要针对的指针成员,所以产生这种疑问);

  5》 同样如第4个,如果是赋值操作呢,只显示的对指针成员操作,内置类型不做操作(赋值操作能默认处理吗);
    
  复制 就是内存copy。所有成员都是内容等,指针也是,只是有时候你需要它指向的内容等,而不是指针等。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。