Effective C++ 隨筆(1)

來源:互聯網
上載者:User

標籤:

條款一 c++ 為一個語言聯邦

1、四個層次 C:blocks,語句,前置處理器,內建資料類型,數組,指標

物件導向的C++:封裝,多態,繼承

Template C++

STL

條款二 盡量以const,enum,inline代替#define

Static const

常量的聲明和定義,聲明應該是在標頭檔當中,定義是在實現檔案當中。對於基本類型需要一個類似賦值的語句,例如:

const double classname::membername = 12;

但是對於對象的定義使用下面的方式 class classone{};

const classone classname::class1;

這點實際上和java非常不一樣,在java當中這隻是意味著進行了聲明,初始化需要new出對象來,但是這裡已經進行了初始化,而且此處使用預設的建構函式

條款三 儘可能使用const

1、const 常量的定義

const char * pointer 表示const的data,但是指標可以變化

char * const pointer 表示const的指標,但是指標指向的data可以變化

const char * const pointer 表示data和指標都是不能變化的

總結:在星號之後表示指標式const,在星號之前表示data是const

2、const 在函數定義當中的使用

const 成員函數

class classname{ private:  string functionname() const; };

此處表示functionname成員函數不能修改類的資料成員

const參數

string function (const string & str);

此處表示function不可以修改str

條款4 確定對象被使用前已經被初始化

c++規定對象的成員變數的初始化在進入建構函式本體之前,在建構函式中進行的都不是初始化,而是賦值操作。在這之前有一個defaut建構函式被自動調用的過程 因此實際上default建構函式的構造全部作廢。

可以使用初始化列表

這不僅是為了提高效率,有時也是必須的,比如類成員的成員變數如果為const類型則在聲明時就應該進行初始化,若為default的方式是會出錯的,需要使用初始化列表,來對其定義

Effective C++ 隨筆(1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.