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

深入探索C++对象模型学习札记

2013-10-27 
深入探索C++对象模型学习笔记1.?? 关于对象1.1.? 虚表:?1.2.? 指向虚表的指针:改写函数签名,改为通过参数

深入探索C++对象模型学习笔记

1.?? 关于对象1.1.? 虚表:

?

1.2.? 指向虚表的指针:

改写函数签名,改为通过参数来返回。例如foo(A& a)

A foo(){

A a;?

a.f();

return a};

首先改造为

Foo(A& a){

????? ??? a.A::A()

a.f()

a.A::A(a)

}

然后优化掉copy构造(C++标准是允许的)

Foo(A& a){

?????????????? a.A::A()

a.f()

}

当编译器提供NRV优化时,最好还是提供一个。这样在大量的基于成员的初始化memberwise(与Bitwise相对)时,可以激活NRV。

Member Initialization List的执行顺序可能会因为插入新的代码而打乱。如果以member来初始化baseclass,或者memberclass。

?

?

3.?? Data语意学(The Semantics of Data)4.?? Function语意学(The Semantics of Function)

热点排行