c++中定義和聲明的區別

一.基本理解

1.定義和聲明的簡單說明

a.聲明就是指給除了當前變量或者函數,或者類什麼的名字,不給其中的內容,就是先告訴你有這樣一個什麼類型的變量或者函數,但是這個變量或者函數的具體信息卻是不知道的。就好比跟你介紹一個人的時候,聲明就是隻告訴你這個人叫什麼,但是缺不給你說這個人到底怎麼樣,他有哪些優點,缺點,喜好問題是什麼的。

b.定義就不一樣了,定義直接告訴你了所有的東西,這個變量是什麼,這個函數是什麼功能,這個類裏面包含了什麼東西。很具體的說明。


2.對於變量來說

a.定義:可以爲變量分配存儲空間,並且可以給變量一個初始值

b.聲明:告訴編譯器這個變量的名字和類型(extern int a;(在沒有賦值的情況下,變量前加上關鍵字extern一定爲聲明))

3.對於函數來說

a.定義:就是這個函數具體的實現

b.聲明:告訴編譯器在這個程序中會有這麼一個函數

簡單來說,如果函數帶有{},則其爲定義;否則,就爲聲明。


二.深入探討

1.在一個程序中只能對變量定義一次,因爲我們不能讓編譯器一直爲同一個變量,函數分配不同的存儲空間;而可以對變量進行很多次的聲明。

 2.在任何多文件中使用的變量都需要有與定義分離的聲明。在這種情況下,一文件含有變量的定義,則使用該變量的其他文件中就要含有該變量的聲明,而不是定義。

3.在頭文件中不能放變量的定義,一般存放變量的聲明。因爲頭文件要被其他文件包含,如果放到頭文件當中就不能避免變量被多次定義。(const,inline)

三.類的聲明

類聲明的一般形式:

class類名

{

     private: 私有數據成員; 私有的成員函數;

    protected: 被保護的數據成員; 被保護的成員函數;

    public: 公共的數據成員; 公共的成員函數;

};

其中:class是聲明類的關鍵字,類名是要表明的類的名字,後面的花括號表示出類的聲明範圍;最後分號表示類聲明結束。
類的成員:①私有成員:被該類的成員函數訪問
                    ②公有成員可被程序中的其它函數訪問,是類的對外接口。
                   ③保護成員在類中等同於私有成員,在繼承中等同於公有成員。
           注意:C++規定,在缺省情況下,類中的成員是私有的。
        類的作用域:指在類的聲明中的一對花括號所形成的作用域。
說明: 
(1)數據成員可以是任何數據類型,但不能用自動(auto)寄存器(vegister)或外部(extern)  進行說明。
(2)不能在類的聲明中給數據成員賦初值。只有在類對象定義後才能給數據成員賦值。

(3)成員函數,又稱方法。其定義通常採取兩種方式:外部定義,內部定義(①隱式定義:直接將函數定義在類內部; ②顯式定義:在類定義體外定義內置函數,在函數定義前冠以"inline")。

參考博客:http://lizhiyuan.bokee.com/907634.html




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章