`
mmdev
  • 浏览: 13250873 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Effective C++ 6

 
阅读更多

virtual函数:接口必须被继承。

non-virtual:接口和实现都被继承。

public继承情况:Liskov Substitution Principle

Base能用的地方都能用Derived代替。

如函数参数用point或reference传递对象。

public继承的关键:is-a模型。

derived-class的名称会遮掩Base-class的名称。

例:

如果要求Baseclass的mf1不被遮蔽,解决办法:

1.在类public中声明using Base::mf1;

如果private继承,指向继承Base class的1个mf1,则可以利用转交函数

virtual void mf1()

{

Base::mf1();

}

pure virtual function在base中声明,必须在derived中定义,即必须提供自己的版本,否则报错。

pure virtual目的是继承接口。

注意pure virtual也可以给出定义。可以实现即覆写又利用转换函数实现继承。

impure virtual的目的是继承接口和缺省实现,如果不定义默认继承,但derived可以覆写它。

80-20规则可以确定 我们一定要关注20%的代码,因为他们用了80%的时间。

non-virtual 继承接口和强制实现。

1.template method设计模式:

public non-virtual成员函数调用private virtual函数 称为 non-virtual interface (NVI)

non-virtual函数称为外覆器

优点:可以额外做事先和事后工作。

derived class可以重新定义继承private virtual函数。

2.function pointer实现strategy模式

构造函数参数接受一个指针。

3.tr1::function实现strategy模式

如:typedef std::tr1::function<int (const A&)> h;//h为任何可调用物。

//签名代表的函数是接受一个reference指向const A 返回int

//该设计可兼容。

只要h的参数是可以转换为const&A的,返回值能转换为int的像函数的都行。

4.传统strategy模式

将本生的virtual函数变为一个类。

任何派生类都不该重新定义基类的non-virtual函数

virtual为动态绑定,默认参数值为静态绑定。

分享到:
评论

相关推荐

    Effective C++ More effective C++ 中文版 .chm .rar

    《Effective C++》和《More Effective C++》是两本非常经典的C++编程指南,由Scott Meyers撰写,旨在帮助开发者提升C++编程技巧和理解深度。这两本书中包含了一系列的编程实践和建议,旨在让程序员写出更高效、更...

    effective c++和more effective c++

    《Effective C++》和《More Effective C++》是C++编程领域中的两部经典之作,由Scott Meyers撰写。这两本书深入浅出地探讨了如何更有效地利用C++语言特性,提升代码质量和效率,是每一位C++程序员必备的参考书籍。 ...

    effective c++ & more effective c++ 纯文字版

    effective c++ & more effective c++ 纯文字版

    Effective C++跟more Effective c++

    《Effective C++》和《More Effective C++》是两本由Scott Meyers撰写的经典C++编程指南,深受程序员喜爱。这两本书深入探讨了C++编程的最佳实践和常见陷阱,帮助开发者写出更高效、更安全的代码。以下是对这两本书...

    Effective C++ 6寸 重排版

    有人把学习C++的分为两类:看过Effective和没看过Effective的. 6寸 重排版

    Effective C++ && More Effective C++(完整版)

    这是我辛苦找来的侯捷翻译的Effective C++ && More Effective C++(完整版),其中Effective C++ 包括中文第二版,中文第三版,还有英文第三版。我这还有pdf,但是大于15MB,传不上去,有需要的,可以像我要啊!

    Effective C++ & More Effective C++.chm

    Effective C++ & More Effective C++.chm

    Effective C++ 中文带目录

    《Effective C++》第三版由Scott Meyers所著,是一本经典的C++编程书籍。本书不仅深入探讨了C++语言的高级特性,也提出了一系列编程实践中的最佳实践和技巧。侯捷老师翻译的中文版,使更多的中文读者能够学习和掌握...

    Effective C++中文第3版.pdf 带目录书签 清晰版

    《Effective C++中文第3版》是一本由Scott Meyers所著的经典著作,该书深入浅出地介绍了C++编程语言的最佳实践与设计原则。它不仅适合初学者掌握C++的核心概念,也是资深程序员提高代码质量和性能的宝典。下面,我们...

    More Effective C++ 侯捷 pdf

    More Effective C++ 侯捷 pdf

    Effective C++第三版中文版高清版侯捷 译

    6. **构造函数和析构函数**:有效的构造函数和析构函数设计对于C++对象的正确初始化和清理至关重要。书中将讨论构造函数的初始化列表、拷贝构造函数、移动构造函数,以及如何实现无害的析构函数。 7. **常量和引用*...

    Effective C++中文版第三版 高清PDF带目录

    根据提供的标题、描述和标签,我们可以确定这与《Effective C++》这本书的相关资源有关。但是,在给定的部分内容中,并没有直接提及与本书的具体知识点,而是反复提到了一个名为“Linux公社”的网站及其涵盖的内容...

    Effective C++ & More Effective C++

    《Effective C++》和《More Effective C++》是两本由Scott Meyers撰写的经典C++编程指南,深受程序员喜爱。这些书籍深入探讨了如何利用C++语言的特性来编写更高效、更易于理解和维护的代码。以下是这两本书中涵盖的...

    Effective C++ 3个版本清晰pdf

    《Effective C++》是一本由Scott Meyers编著的经典C++编程指南,旨在帮助程序员写出更高效、更安全、更易于理解和维护的C++代码。这本书分为三个版本,分别是第一版、第二版和第三版,其中第一版和第二版提供了中文...

    Effective C++第三版高清英文原版

    6. 现代C++的最新特性:由于书中提到了第三版中增加了关于最新语言特性和问题的章节,可以推断书中还包含了C++11(及以上版本)的新特性的介绍和最佳用法。 7. 代码效率和性能优化:包括如何在不牺牲代码可读性和可...

    More Effective c++中文版和Effective c++中文版英文版

    《More Effective C++》与《Effective C++》是两本非常经典的C++编程指南,由Scott Meyers撰写,对于深入理解和提升C++编程技巧有着极大的帮助。这两本书都是C++程序员的必读之作,旨在帮助读者更好地掌握C++语言的...

    Effective C++中文版(第三版)

    《Effective C++中文版(第三版)》是一本深入探讨C++编程实践的书籍,该书由Scott Meyers撰写,是C++编程领域内的经典之作。书中通过条目式讲解,简洁明了地介绍了55个改善C++程序和设计的具体方法。这些方法不仅...

    Effective C++ 和 More Effective C++ 高清中文版

    《Effective C++》和《More Effective C++》是两本由Scott Meyers撰写的经典C++编程指南,深受程序员喜爱。这两本书深入探讨了如何利用C++语言的特性来编写高效、可维护的代码,是提升C++编程技能的重要参考资料。 ...

    effective C++中文版(带书签)

    6. 新特性:根据版本的不同,中文版《Effective C++》可能还包含了对C++新标准(如C++11、C++14、C++17和C++20)中新增特性的介绍,包括了lambda表达式、智能指针、右值引用、移动语义和并发编程等。 7. 编码风格与...

Global site tag (gtag.js) - Google Analytics