您的位置:首页 > 编程语言 > C语言/C++

C++ 类的构造函数

2015-12-08 23:30 337 查看
类的构造函数并没有想象中的那么好用,也没有想象中的不好用

先说好处:

- 可以提醒程序员初始化必要的成员变量

- 构造虚函数表(虚函数表中的指针是不靠谱的,C++编译器做了一定的转化),这样可以实现多态

- 私有构造函数提供了一个新特性,只有类自己能够生成自己的对象,基于此,我们可以实现单例模式,但是还不够,必须有静态成员函数,静态成员函数有自己独立的内存地址,可以通过类域直接进行访问

再说坏处:

- 初始化的过程可能会很复杂,构造函数难以胜任,单独使用其他函数用于成员变量的初始化工作,典型的InitDialog()

- 虚函数表使得对象的行为变得不可控制,比如,我们不能使用memset来初始化一个对象,fread和fwrite函数也不能很好的控制对象,基于此,我们可以得出这样的一个结论,多态给我们提供了一些便利,但是,我们失去对内存控制的灵活性。天下没有免费的午餐!!!

从上面的分析可以知道,为什么我们最好不要用malloc为对象动态申请内存空间,而要用new来做这个事情,最重要的一个原因就是new 可以自动调用对象的构造函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: