2012-05-24 62 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