2012-05-24 60 views
5

我正在讀一本書,C++入門指南。這些C++術語是否正確?

我想我把它弄到一定程度,我只想澄清幾件事情。

  1. 它說,一個class是等的數據類型(A數據類型爲intchar,等..),並且一個Object /實例是像一個變量。這是真的?

  2. 什麼是數據表格?

  3. 聲明的哪一部分是聲明?它是data type + the variable,而=是分配?

+4

源文件會很適合酒吧一樣提供定義爲什麼這麼多降價? – TeaOverflow

+0

我不知道;我認爲這些問題很容易回答,我花時間寫出問題,以便他們能夠有效地返回。 – Ayfiaru

+2

我認爲這有點苛刻。如果他已經閱讀了一本書,他感到困惑,他們是有效的問題。 –

回答

5

不完全。

類是「像數據類型」的意思,它是創建對象的模板,但它本身不是您可以使用的對象。

當您使用該模板創建對象的實例時,則可以使用該對象。您可以根據需要創建多個實例 - 您可以將這些實例視爲變量。

例如:

class Person 
{ 
    public: 
     Person() : name("Joe Bloggs") {} 

     std::string getName() { return name; } 

     void setName(std::string n) { name = n; } 

    private: 
     std::string name;  
}; 

。這是一個人A類定義。這不是一個變量。你不能在它上面調用setName,因爲它還沒有存在。但是當你這樣做時:

int main() 
{ 
    Person p, q; 
    p.setName("Jill Bloggs"); 
    q.setName("Bob King"); 
    std::cout << p.getName() << " " << q.getName() << std::endl; 
} 

您創建了兩個可以分配,更改和使用的人員實例 - 他們是稱爲實例的變量。

我不知道「數據表」是什麼意思,忽略這一點。

至於聲明 - 聲明指出某個東西的實例將存在。例如,如果你創建一個類,你的頭文件有:

class foo 
{ 
    public: 

     foo(int value); 

     void bar(); 

    private: 
     int x; 
}; 

你宣佈你有一個函數調用酒吧返回void,並且有一個名爲X的整數。

沒有爲變量x分配內存,也沒有提供任何定義或bar,所以它們只是聲明。

void foo::bar() 
{ 
    //some code 
} 

和構造definiton foo的,將一個值初始化x和控制它是如何創建的(與初始化列表):

foo::foo(int value) : x(value) 
{ 
    //some code 
} 
+0

哈哈非常感謝您花時間來解釋! – Ayfiaru

+1

沒問題。它變得更容易 - 你會發現你可以重寫你的大學二年級大學決賽項目,在15分鐘內花費3個月時間(假設你在大學裏,哈哈)。 –

+0

太棒了,謝謝;) – Ayfiaru