选件类成员声明语法

类别数据成员声明中的,规则之后,并且功能成员通常声明。 按此顺序,包括:

  • 声明说明符。 在类中,存储类说明符 静态变量 允许数据成员。 cv 限定符 const 和 volatile 允许数据和功能成员。 声明说明符 friend、 静态虚拟内联 允许功能,不过, friend 指示非成员函数。

  • 没有初始值设定项的声明。 对于虚函数,窗体 = 0 的纯说明符,用于在函数声明指定一个纯虚函数后 (未实现的虚函数在该类)。

  • 或者,位域。 请参见 位域。

OR

  • 函数定义。 函数的定义在类中包含。 如果成员函数的定义,自动被视为内联。

OR

数据成员不能声明为 自动、 extern或 注册 存储类。 它们可能,但是,声明为具有 静态 存储类。

在声明在成员的 friend 类列表,您可以忽略公告列表的成员。 有关 friends 的更多信息,请参见 友元说明符friend。 即使没有引入类名,可用于 friend 说明。 此 friend 声明引入名称。 但是,如下面的示例所示,在此类的一个成员声明,必须使用该阐述的类型说明符,语法:

// class_member_declaration_syntax.cpp
// compile with: /c
struct HasFriends {
   friend class NotDeclaredYet;
};

在前面的示例中,未声明在类声明之后列出的成员。 由于 NotDeclaredYet 的声明非托管,将阐述的类型说明符形式: class NotDeclaredYet。 使用声明正常型说明符,类型的 friend 成员声明中指定:

// class_member_declaration_syntax2.cpp
// compile with: /c
struct AlreadyDeclared {};

struct HasFriends {
   friend AlreadyDeclared;
};

纯说明符 (如下面的示例) 指示实现没有为声明的虚函数中提供。 因此,这种纯说明符在虚函数只能指定。 请看以下示例:

// class_member_declaration_syntax3.cpp
// compile with: /c
class StrBase {   // Base class for strings.
public:
   virtual int IsLessThan( StrBase& ) = 0;
   virtual int IsEqualTo( StrBase& ) = 0;
   virtual StrBase& CopyOf( StrBase& ) = 0;
};

即前面的代码声明为抽象基类 ),设计的类仅用作基类为更具体的类。 使用这种纯说明符,这样基类可以实施特定协议或设置功能,通过声明一个或多个虚函数为 “”纯虚函数,。

从 StrBase 类继承的类必须为纯虚函数提供实现;否则,它们,同样,被视为抽象基类。

抽象基类不能用于声明对象。 例如,在中,在从 StrBase 继承的类型的对象可声明之前,必须实现功能 IsLessThan、 IsEqualTo和 CopyOf 。 (有关抽象基类的更多信息,请参见 抽象类。)

请参见

参考

选件类成员