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