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

既是class基本上都有default constructor,那么为什么那些built-in types

2014-01-12 
既然class基本上都有default constructor,那么为什么那些built-in types不都弄一个“default constructor”

既然class基本上都有default constructor,那么为什么那些built-in types
不都弄一个“default constructor”呢?这样不就没有了“未初始化”的错误了吗?
[解决办法]
你的想法很对。 面向对象语言,如C#支持这样的特性。

说C++不是完全面向对象的一个原因也是这个。将类型int,double等做成class应该会带来更多的资源消耗。
[解决办法]

引用:
你的想法很对。 面向对象语言,如C#支持这样的特性。

说C++不是完全面向对象的一个原因也是这个。将类型int,double等做成class应该会带来更多的资源消耗。

ctor只是表达对象生命周期的机制之一,不是OOP的基本特征。一个实现,只要至少满足抽象、封装、模块化和层次结构四个主要特征,就可以称为一个OOP实现,显然C++是满足这些条件的。

[解决办法]
引用:
不都弄一个“default constructor”呢?这样不就没有了“未初始化”的错误了吗?


C++虽然没有为内置类型显式指定ctor语义,但带有隐含语义,例如zero-initialized。
[解决办法]
default ctor 解决不了未初始化的问题。


struct Widget
{
int* p;
};

Widget w; 
//w.p的值不能确定

[解决办法]
引用:
可能也是为了兼容C


C/C++都是追逐性能的, 没有必要的初始化也是性能损耗, 读数据时自己确保已经写入过的确定的值就可以了。 其设计理论之一: 相信程序员不会犯错误。实际情况是:程序员最容易犯错误。

热点排行