程序设计(一):类相关

1、 空类(不包含任何数据成员)sizeof值为1。

2、若类中包含虚函数,则类对象中隐藏一个指针vptr, 指向虚表vtbl。

3、若子类重新定义父类中虚函数A, 则子类对象从父类中继承的虚表中函数A的地址也相应更改为子类新定义函数地址。

4、每个成员函数调用都隐含this指针。 如:Foo obj; obj.test(); => Foo::test(obj); 例子中this指针指向obj。

5、64bit系统中, class Foo {int data;};  sizeof(Foo), sizeof(int) 结果是8, 4。因为需要考虑内存对齐。

6、类与类之间三大关系:

  继承(inheritance)   is-a  ——▷表示

  复合(Composition)  has-a  ◆——>表示

  委托(Delegation)         ◇——>表示

委托、复合之间区别:复合是类中成员包含对象, 委托是类中成员包含对象指针或引用pImpl。

7、pointer-like object, 像指针的对象。为什么要设计一个类像一个指针?可以看shared_ptr<>, 迭代器

扫描二维码关注公众号,回复: 10538504 查看本文章

8、function-like object, 像函数的对象。

9、泛化是一个特别大的概念。简单点讲就是类模板。但是里头包含了很多概念需要学习, class/member/function template、偏特化(partial specialization,基于个数/ 基于范围),模板模板参数(template template parameter)等等。

10、STL要熟练, 容器(Containers) 、迭代器(Iterators)、算法(Algorithms) 、仿函数(Functors)等。

11、const

猜你喜欢

转载自www.cnblogs.com/honfu/p/12643318.html
今日推荐