More Effective C++之3

原创 2006年05月29日 18:22:00
条款3:绝对不要以多态(polymorphically)方式处理数据
       对于多态来说,虽然是好东西,但它带来的结果是对象的大小可能发生变化,基类和派生类的大小并不一致。数组是C的产物,它不能有效承载大小不一的对象,尽管它们来自于同一基类。目前就我所知,并没有支持多态的对象容器,也许有我不知道。如果是我的话,就避免这种用法。

相关文章推荐

more effective c++之Item M3:不要对数组使用多态

不要对数据使用多态,因为基类和派生类的对象大小不同,导致执行数组指针前移和后移等操作时对象跨度不同会出问题; 类继承的最重要的特性是你可以通过基类指针或引用来操作派生类。这样的指针或引用具有...

More Effective C++总结(3):异常

条款9: 使用析构函数防止资源泄漏 下面代码会产生的问题:pa->processAdoption()可能抛出异常,导致delete不被执行 void processAdoption(istream...
  • rommi
  • rommi
  • 2011年09月20日 15:31
  • 645

《more effective c++》Item M3:不要对数组使用多态

类继承的最重要的特性是你可以通过基类指针或引用来操作派生类。这样的指针或引用具有行为的多态性,就好像它们同时具有多种形态。C++允许你通过基类指针和引用来操作派生类数组。不过这根本就不是一个特性,因为...

More Effective C++----(1)指针与引用的区别 & (2)尽量使用C++风格的类型转换 & (3)不要对数组使用多态

Item M1:指针与引用的区别 指针与引用看上去完全不同(指针用操作符“*”和“->”,引用使用操作符“. ”),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使...

More Effective C++之Item M21:通过重载避免隐式类型转换

C++规则:每一个重载的operator必须带有一个用户定义类型(user-defined type)的参数; 以下是一段代码,如果没有什么不寻常的原因,实在看不出什么东西: class UP...

More Effective C++之Item M10:在构造函数中防止资源泄漏

如果你正在开发一个具有多媒体功能的通讯录程序。这个通讯录除了能存储通常的文字信息如姓名、地址、电话号码外,还能存储照片和声音(可以给出他们名字的正确发音)。 为了实现这个通信录,你可以这样设计: ...

指针和引用的区别(More Effective c++ )

指针与引用看上去完全不同(指针用操作符“*”和“->”,引用使用操作符“. ” ),但 是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候 使用指针,在什么时候使用...

《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?

昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间? 一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分...
  • hxz_qlh
  • hxz_qlh
  • 2013年10月26日 21:27
  • 5928

More Effective C++----异常 & (9)使用析构函数防止资源泄漏

异常 关于C++异常的详细知识,请参考http://blog.csdn.net/qianqin_2014/article/details/51325842> C++新增的异常(exceptio...

More Effective C++ ——08_理解各种不同含义的new和delete

条款八:理解各种不同含义的new和delete1.区别 new操作符(new operator)和operator new    string *ps = new string("Memory Ma...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:More Effective C++之3
举报原因:
原因补充:

(最多只允许输入30个字)