codecamp

C++ 什么是类?

在大多数面向对象的编程语言中,类即为包含一系列函数的用户自定义类型。正如我们看到的这样,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。

C++ 私有数据和私有类
C++ 复数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }