14.2 什么是类?

优质
小牛编辑
126浏览
2023-12-01

在大多数面向对象的编程语言中,类即为包含一系列函数的用户自定义类型。正如我们看到的这样,C++中的结构体就符合这样的定义。
但C++中有另外的结构也符合这一定义;说起来有点令人迷惑,这一结构就是类(class)。 在C++中,类就是变量默认为私有的结构体。举例来说,我可以把“纸牌”结构体定义改成这样。

class Card 
{ 
        int suit, rank; 

public: 
        Card (); 
        Card (int s, int r); 

        int getRank () const { return rank; } 
        int getSuit () const { return suit; } 
        int setRank (int r) { rank = r; } 
        int setSuit (int s) { suit = s; } 
}; 

我把struct改为class并去掉了private:这样的标号。除了这两处,两个定义完全一致。
事实上,任何可以写成struct的都可以写成class,只是添加删除标号而已。除了风格方面的原因,不必在二者之中进行过分取舍,不过大多数C++程序员使用class。
另外,通常把所有C++中自定义类型叫做“类(class)”,无论他们是被定义为struct或class。