严以律己,宽以待人. 三思而后行. GMail/GTalk: yanglinbo#google.com; MSN/Email: tx7do#yahoo.com.cn; QQ: 3 0 3 3 9 6 9 2 0 .
class X { public: virtual ~X(); //析构函数 virtual void VirtualFunc(); //虚函数 inline int InlineFunc() { return m_iMember}; //内联函数 void NormalFunc(); //普通成员函数 static void StaticFunc(); //静态函数 private: int m_iMember; }; class XX: public X { public: XX(); virtual ~XX(); virtual void VirtualFunc(); private: String m_strName; int m_iMember2; };/FONT>
X obj; X* ptr = &obj; obj.StaticFunc(); ptr->StaticFunc(); X::StaticFunc();/FONT>
mangled_name_of_X_StaticFunc(); //obj.StaticFunc(); mangled_name_of_X_StaticFunc(); // ptr->StaticFunc(); mangled_name_of_X_StaticFunc(); // X::StaticFunc();/FONT>
X obj; X* ptr = &obj; obj.NormalFunc(); ptr->NormalFunc();/FONT>
mangled_name_of_X_NormalFunc(&obj); //obj.NormalFunc(); mangled_name_of_X_NormalFunc(ptr); // ptr->NormalFunc();/FONT>
X obj; X* ptr = &obj; X& ref = obj; ptr->VirtualFunc(); ref.VirtualFunc();/FONT>
( *ptr->vptr[2] )(ptr); ( *ptr->vptr[2] )(&ref);/FONT>
XX::XX() { // 编译器扩充代码所要做的工作 1、 调用父类X的缺省构造函数 2、 设定vptr指向XX类虚函数表 3、 调用String类的缺省构造函数构造m_strName };/FONT>
效率不高的做法 高效率做法 void Function( XX xx ) void Function( const XX& xx ) { { //函数体 //函数体 } }/FONT>
效率不高的做法 高效率做法 void Function( bool bCache ) void Function( bool bCache ) { { //函数体 //函数体 XX xx; if( bCache ) if( bCache ) {// do something without xx { return; // do something without xx } return; } //对xx进行操作 XX xx; //对xx进行操作 … return; return; } }/FONT>
效率不高的做法 高效率做法 void Function( const XX& xx ) void Function( const XX& xx ) { { XX cache; XX cache = xx; cache = xx ; } }/FONT>
效率不高的做法 高效率做法 XX::XX() XX::XX() : m_strName( "" ) { { m_strName = ""; … … } }/FONT>
posted on 2006-09-20 19:19 杨粼波 阅读(854) 评论(0) 编辑 收藏 引用 所属分类: C++
Powered by: C++博客 Copyright © 杨粼波