青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎(chǔ)} {C++ 高級(jí)} {C#界面,C++核心算法} {設(shè)計(jì)模式} {C#基礎(chǔ)}

c++ effective心得

1.Operator overloading

 

一般的:  c& c::operator=(const c&){。。。。return *this;};   --------格式  運(yùn)算符的重載
   w = x = y = z = "hello";//可以返回引用,效率高
   a+b+c+d     //必須返回類(lèi),而不是返回引用
   c c::operator=(const c &){ 。。。。。。return *this;};
  
Operators that can be overloaded
+, -, *, /, %, ^, &, +=,-=,*=,/=, (), [], >>, ==,=,->,++,--, ->*, … new, delete
Operators that can not be overloaded
., ::, ?:, .*
//Notes for ++, -- operator
區(qū)別:
 T& operator ++() //prefix ++a
 T operator++(int) //postfix a++


一般情況下幾乎總要遵循operator=輸入和返回的都是類(lèi)對(duì)象的引用的原則.
必須返回一個(gè)對(duì)象時(shí)不要試圖返回一個(gè)引用,當(dāng)需要在返回引用和返回對(duì)象間做決定時(shí),你的職責(zé)是選擇可以完成正確功能的那個(gè)。至于怎么讓這個(gè)選擇所產(chǎn)生的代價(jià)盡可能的小,那是編譯器的生產(chǎn)商去想的事。

2.
const成員函數(shù)不被允許修改它所在對(duì)象的任何一個(gè)數(shù)據(jù)成員。mutable在處理“bitwise-constness限制”問(wèn)題時(shí)是一個(gè)很好的方案,但它被加入到c++標(biāo)準(zhǔn)中的時(shí)間不長(zhǎng),所以有的編譯器可能還不支持它。
explicit表示必須顯示的調(diào)用該函數(shù)。

3.void including more times
#findef
#define

#endif

等價(jià)于
#progma once


4  .struct
                             #pragma pack(pop, n)
struct Employee{
 char cName[5];
 short  nAge;
        float  dSalary;
 bool  bMarried;
};
sizeof(Employee) depends on struct member alignment. Default is 4 bytes alignment. sizeof(Employee) = 16
2 bytes data wants to start from even address, 4 bytes data wants to start from address that is 4 times, 1 byte data can start from any address
我們可以用以下改變默認(rèn)的對(duì)齊方式。
#pragma pack(pop, n)

5。enum :It can define a set of const values.

6。In fact, C++ compiler creates a global function for each member function, and add another parameter whose type is our class. 一般位類(lèi)名_函數(shù)名_參數(shù)列表

7。constructor   ※   deconstructor

Copy Constructor 
Copy constructor is a constructor that has a parameter whose type is class reference.
and the class reference is const.
eg:
CRectangle( const CRectangle& other)
eg:
   CComplex a;
   CComplex b=a; // Copy constructor is invoked
   b=a; //Assignment operator is invoked

Converting Constructor
一般定義位explicit函數(shù),必須被顯示的調(diào)用


8。const in class
  4 cases in a class
 const int member;只能在初始化列表里進(jìn)行初始化
 int funct( const int nFactor,…);參數(shù)位常熟,在函數(shù)種不可被修改
 const int func(…); 返回的值位常熟不可以再被賦值和修改
 int func(…) const; 常函數(shù),不可以修改所在類(lèi)的成員,要修改的成員必須有mutable關(guān)鍵字


9。inline
You can see there is no function calling in assembly.
A function defined within a class definition is an inline function.
Although a function is inline, that whether to expend or not depends on compiler or its settings.一般函數(shù)里有循環(huán)的系統(tǒng)認(rèn)為不內(nèi)聯(lián)
10.  Member-initializer-list
Const, reference and base class constructor (that has arguments) must be initialized or called in member-initializer-list
Members are initialized by order that they are defined in class definition, not by order their initializers are in member-initializer-list.
eg:
CCircle::CCircle() : PI(3.14159), m_dOrgX(0.0), m_dOrgY(0.0)
{
}
基類(lèi)的初始化,按照子類(lèi)定義時(shí)的順序,不時(shí)初始化列表的順序

11。 class Default functions
Constructor [do nothing]
Copy constructor [bitwise copy]
Destructor ( ~ ) [do nothing]
Assignment operator ( = ) [bitwise copy]
Address operator ( & )
Dereference operator ( * )

//當(dāng)有指針是自己定義拷貝構(gòu)造和賦值
eg:
        if(other.m_pBuffer!=NULL) {
 m_pBuffer=new TCHAR[tcslen(other.m_pBuffer)+1];
 tcscpy(m_pBuffer,other.m_pBuffer);}

12 this 指針
Point lower;
lower.setX(20).setY(30).doubleMe() ;
因?yàn)椋?BR>     Point& setX(int x) { _x = x; return *this;}  
     Point& setY(int y) { _y = y; return *this;}  
     void doubleMe()
 {  _x *= 2;
  _y *= 2;  
 }

13。    const   static     int PI=1;類(lèi)中的成員直接賦值,只有這一種情況可以,必須為int.

        double CCircle::PI = 1.0;類(lèi)中的靜態(tài)成員初始化必須再類(lèi)外,而且還的有類(lèi)型, 如前面.
        靜態(tài)成員的初始化不能再構(gòu)造函數(shù)中進(jìn)行!

14.  Dynamic_cast
The dynamic_cast is used for safe casting from a pointer to a base class to a pointer to a derived class, often referred to as safe down casting. It is used when one must use the features of the derived class that are not present in the base class.

typeid            typeid( object );
The typeid operator returns a reference to a type_info object that describes `object`.

If the expression is of class type and the class contains one or more virtual member functions, then the answer may be different than the type of the expression itself. For example, if the expression is a reference to a base class, the typeid operator indicates the derived class type of the underlying object.

PTTI運(yùn)行時(shí)刻類(lèi)型識(shí)別允許“用指向基類(lèi)的指針或引用來(lái)操作對(duì)象”的程序能夠獲取到“這些指針或引用所指的對(duì)象”的實(shí)際派生類(lèi)型。
1. Dynamic_cast它允許在運(yùn)行時(shí)刻進(jìn)行類(lèi)型轉(zhuǎn)換,從而使程序能夠在一個(gè)類(lèi)層次結(jié)構(gòu)中安全地轉(zhuǎn)換類(lèi)型,把基類(lèi)指針轉(zhuǎn)化成派生類(lèi)指針,或把指向基類(lèi)的左值轉(zhuǎn)換成派生類(lèi)的引用,當(dāng)然只有在保證轉(zhuǎn)換能夠成功的情況下可以。
2. typeid操作符,它指出指針或引用指向的對(duì)象的實(shí)際派生類(lèi)型。它在程序中可以用于獲取一個(gè)表達(dá)式是一個(gè)類(lèi)類(lèi)型,并且含有一個(gè)或多個(gè)虛函數(shù)成員,則答案會(huì)不同于表達(dá)式本身的類(lèi)型。例如,如果表達(dá)式是一個(gè)基類(lèi)的引用,則typeid會(huì)指出底層對(duì)象的派生類(lèi)類(lèi)型。


15. What exceptions can a function throw if it has an exception specification of the form throw()?  (6’) throw all kinds of exceptions
If  it has no exception specification?
What means the syntax: catch (…) catch all types of exceptions

posted on 2005-11-09 12:56 夢(mèng)在天涯 閱讀(1874) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): CPlusPlus

評(píng)論

# re: c++ effective心得 2006-08-17 12:26 keyws

T& operator ++() //prefix ++a
T operator++(int) //postfix a++
怎么解釋這個(gè)?即編譯器如何決定調(diào)用哪個(gè)?

  回復(fù)  更多評(píng)論   

# re: c++ effective心得 2008-10-14 14:33 ggz

@keyws
一個(gè)是++a 一個(gè)是a++  回復(fù)  更多評(píng)論   

公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計(jì)

  • 隨筆 - 461
  • 文章 - 4
  • 評(píng)論 - 746
  • 引用 - 0

常用鏈接

隨筆分類(lèi)

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1815011
  • 排名 - 5

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              99精品视频一区二区三区| 欧美在线高清视频| 亚洲欧美日韩视频二区| 亚洲图片在区色| 亚洲图片欧洲图片av| 午夜精品在线看| 久久精品亚洲乱码伦伦中文 | 亚洲综合国产精品| 久久免费视频网| 久久久之久亚州精品露出| 久久久精品视频成人| 你懂的国产精品| 欧美日韩国产精品自在自线| 国产精品国产三级国产| 国产午夜精品在线观看| 亚洲电影欧美电影有声小说| 亚洲免费成人av电影| 欧美尤物一区| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美福利一区二区| av72成人在线| 欧美在线资源| 欧美三级第一页| 国产在线精品成人一区二区三区| 亚洲电影av| 亚洲欧美视频一区二区三区| 久久久国产亚洲精品| 欧美激情第二页| 亚洲男人第一网站| 欧美va亚洲va香蕉在线| 国产欧美日韩三区| 日韩视频在线一区二区三区| 久久经典综合| 亚洲免费观看高清完整版在线观看熊| 亚洲自拍三区| 欧美日韩国产一级| 1024国产精品| 久久久97精品| 亚洲无毛电影| 欧美日韩亚洲不卡| 亚洲人久久久| 快播亚洲色图| 欧美永久精品| 国产精品一区视频网站| 夜夜嗨av一区二区三区中文字幕| 久久全球大尺度高清视频| 亚洲一级免费视频| 国产精品a级| 中国亚洲黄色| 亚洲乱码久久| 欧美日韩在线精品| 在线亚洲伦理| 亚洲精品国产精品国产自| 久久国产精品久久精品国产| 国产精品一区久久久久| 欧美影院一区| 篠田优中文在线播放第一区| 国产精品成人免费精品自在线观看| 亚洲免费大片| 亚洲精品一二| 欧美日韩一区二区视频在线| 一本一本a久久| 日韩网站在线观看| 国产精品分类| 欧美一区二区日韩| 先锋影音久久久| 国产一区二区三区四区三区四| 国产精品午夜视频| 校园春色国产精品| 亚洲欧美制服另类日韩| 国内精品伊人久久久久av一坑| 久久精品国产一区二区三| 午夜精品久久久久久久白皮肤| 国产色视频一区| 久久久久久久久久码影片| 久久免费视频在线| 日韩系列在线| 亚洲一区不卡| 一区二区三区在线视频免费观看| 欧美r片在线| 欧美精品一区在线观看| 亚洲天堂av高清| 亚洲欧美国产视频| 在线播放国产一区中文字幕剧情欧美 | 伊人精品在线| 91久久国产综合久久| 欧美日韩一区二区三区免费看| 性刺激综合网| 久久手机精品视频| 中日韩美女免费视频网站在线观看| 亚洲网站在线播放| 亚洲国产高潮在线观看| 一本久道久久久| 黄色日韩精品| 一区二区三区**美女毛片| 国产亚洲一区在线| 91久久精品国产91性色tv| 国产欧美一区二区三区在线老狼| 欧美国产精品va在线观看| 国产精品福利网站| 欧美成人免费va影院高清| 国产精品久久久久久久7电影| 美玉足脚交一区二区三区图片| 欧美久久综合| 美日韩精品免费| 国产日韩精品一区二区三区| 欧美顶级少妇做爰| 国产日本欧美在线观看| 91久久国产自产拍夜夜嗨| 黄色成人av网站| 亚洲已满18点击进入久久| 最新日韩在线| 久久久www| 久久国产精品毛片| 欧美日韩国产精品一区| 免费国产一区二区| 国产欧美精品在线| 99精品国产高清一区二区| 亚洲国产视频一区二区| 午夜精品在线看| 亚洲综合精品一区二区| 欧美激情五月| 欧美激情一区二区三区在线视频观看| 国产日韩欧美黄色| 亚洲一区视频在线| 亚洲欧美高清| 国产精品电影观看| 一区二区91| 国产精品无码专区在线观看| 亚洲区国产区| 日韩亚洲欧美中文三级| 鲁大师成人一区二区三区| 久久久久免费视频| 国产日韩欧美一区在线| 午夜久久久久久| 亚欧美中日韩视频| 国产精品入口尤物| 午夜精品www| 久久久久综合| 尤物精品在线| 久久精品五月婷婷| 免费在线播放第一区高清av| 在线欧美视频| 欧美激情在线狂野欧美精品| 亚洲激情女人| 亚洲伊人网站| 国产日韩欧美综合在线| 久久精品99国产精品日本| 久久一区二区三区四区| 亚洲第一精品夜夜躁人人躁| 麻豆成人91精品二区三区| 欧美国产一区二区三区激情无套| 91久久精品国产| 欧美日韩免费观看一区| 亚洲一区黄色| 卡一卡二国产精品| 99热免费精品在线观看| 欧美性做爰猛烈叫床潮| 亚洲欧美资源在线| 男男成人高潮片免费网站| 亚洲精品网址在线观看| 欧美性大战xxxxx久久久| 欧美在线资源| 最新国产の精品合集bt伙计| 亚洲在线视频| 激情久久影院| 欧美日韩高清一区| 亚洲欧美日韩系列| 美女图片一区二区| 国产精品99久久久久久久久 | 亚洲精品美女在线| 国产精品福利在线| 久久五月天婷婷| 亚洲免费成人| 免费的成人av| 亚洲欧美日韩综合aⅴ视频| 在线观看欧美激情| 国产精品草草| 免费中文字幕日韩欧美| 亚洲欧美成人一区二区三区| 欧美成人在线免费观看| 亚洲男人影院| 亚洲精品1区2区| 国产亚洲欧美日韩一区二区| 欧美激情免费观看| 久久国产欧美| 亚洲一区二区三区成人在线视频精品| 久久综合伊人77777| 亚洲一区二区高清| 最新成人在线| 在线电影国产精品| 国产精品一区久久久| 欧美日韩国产高清| 麻豆成人精品| 久久久久国产精品厨房| 亚洲自拍三区| 99热免费精品| 亚洲国内高清视频| 欧美风情在线观看| 麻豆av一区二区三区|