国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中聲明類的class與聲明結構體的struct關鍵字詳解

2020-01-26 14:45:12
字體:
來源:轉載
供稿:網友

class
class 關鍵字聲明類類型或定義類類型的對象。
語法

   [template-spec]    class [ms-decl-spec] [tag [: base-list ]]{  member-list} [declarators];[ class ] tag declarators;

參數
template-spec
可選模板說明。
ms-decl-spec
可選存儲類說明有關更多信息
tag
給定于類的類型名稱。在類范圍內的標記成為了保留字。標志是可選項。如果省略,定義匿名類。
base-list
此類派生其成員的類或結構的可選列表。
member-list
類成員列表。
declarators
指定類類型一個或多個實例名稱的聲明符列表。如果類的所有數據成員是 public,聲明符可以包含初始值設定項列表。

使用舉例

// class.cpp// compile with: /EHsc// Example of the class keyword// Exhibits polymorphism/virtual functions.#include <iostream>#include <string>#define TRUE = 1using namespace std;class dog{public:  dog()  {   _legs = 4;   _bark = true;  }  void setDogSize(string dogSize)  {   _dogSize = dogSize;  }  virtual void setEars(string type)   // virtual function  {   _earType = type;  }private:  string _dogSize, _earType;  int _legs;  bool _bark;};class breed : public dog{public:  breed( string color, string size)  {   _color = color;   setDogSize(size);  }  string getColor()  {   return _color;  }  // virtual function redefined  void setEars(string length, string type)  {   _earLength = length;   _earType = type;  }protected:  string _color, _earLength, _earType;};int main(){  dog mongrel;  breed labrador("yellow", "large");  mongrel.setEars("pointy");  labrador.setEars("long", "floppy");  cout << "Cody is a " << labrador.getColor() << " labrador" << endl;}


struct
struct 關鍵字定義結構類型和/或結構類型的變量。

[template-spec] struct[ms-decl-spec] [tag [: base-list ]]{   member-list } [declarators];[struct] tag declarators;

參數
與class的參數相同,可以參照上面的。
備注
結構類型是用戶定義的復合類型。 它由可具有不同類型的字段或成員構成。
在 C++ 中,結構與類相同,只不過其成員默認為 public。
使用結構
在 C 中,你必須顯式使用 struct 關鍵字來聲明結構。 在 C++ 中,你不需要在定義該類型之后使用 struct 關鍵字。
可以選擇在定義結構類型時,通過在右大括號和分號之間放置一個或多個逗號分隔的變量名稱來聲明變量。
可以初始化結構變量。 每個變量的初始化必須括在大括號中。
有關相關信息,請參閱 class、union 和 enum。
示例

 #include <iostream>using namespace std;struct PERSON {  // Declare PERSON struct type  int age;  // Declare member types  long ss;  float weight;  char name[25];} family_member;  // Define object of type PERSONstruct CELL {  // Declare CELL bit field  unsigned short character : 8; // 00000000 ????????  unsigned short foreground : 3; // 00000??? 00000000  unsigned short intensity : 1; // 0000?000 00000000  unsigned short background : 3; // 0???0000 00000000  unsigned short blink   : 1; // ?0000000 00000000} screen[25][80];    // Array of bit fields int main() {  struct PERSON sister;  // C style structure declaration  PERSON brother;  // C++ style structure declaration  sister.age = 13;  // assign values to members  brother.age = 7;  cout << "sister.age = " << sister.age << '/n';  cout << "brother.age = " << brother.age << '/n';  CELL my_cell;  my_cell.character = 1;  cout << "my_cell.character = " << my_cell.character;}// Output:// sister.age = 13// brother.age = 7// my_cell.character = 1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通化县| 龙南县| 许昌县| 呼伦贝尔市| 蛟河市| 新昌县| 秭归县| 上高县| 瑞丽市| 尼勒克县| 尼玛县| 嵩明县| 晋宁县| 和林格尔县| 买车| 阿勒泰市| 赫章县| 山丹县| 宣汉县| 泸溪县| 晋宁县| 盘锦市| 涞水县| 东乡县| 成都市| 高阳县| 辽阳市| 铅山县| 金坛市| 乐陵市| 微博| 海淀区| 亚东县| 陆良县| 聊城市| 柏乡县| 阳山县| 容城县| 嘉定区| 乌鲁木齐县| 临高县|