private :class的private成员,只有同一个class的其他成员或该class的“friend” class可以访问这些成员。 protected :class的protected成员,只有同一个class的其他成员,或该class的“friend” class,或该class的子类(derived classes) 可以访问这些成员。 public :class的public成员,任何可以看到这个class的地方都可以访问这...
class Sneaky : public Base { friend void clobber(Sneaky &s) { s.j = s.prot_mem = 0; } friend void clobber(Base &b) { b.prot_mem = 0; } // error int j; }; prot_mem是Base的protected成员。那么对于 以public的姿势继承Base的子类Sneaky来说,它可以取得该成员(嫡长子)。 而第一个clob...
catch 和 try 语句一起用于异常处理。7. char char(字符,character)类型,C++ 中的基本数据结构,其值一般为 0~255 的 int。这 256 个字符对应着 256 个 ASCII 码。char 类型的数据需要用单引号 '括起来。8.class class(类)是 C++ 面向对象设计的基础。使用 class 关键字声明一个类。9. const const...
CEnumClass &operator=( const CEnumClass &rhs ) { m_value = rhs.m_value; return *this; } protected: int m_value; }; 首先简单的说明一下这个类,CEnumClass是一个奇异递归模板,也就是说模板参数SubT 是CEnumClass<SubT>的子类,那么这样一来为了声明一个枚举类就必须要想下面这样: EType.hpp c...
friend 声明友元,使其不受访问权限控制的限制。 inline 声明定义内联函数,提示编译时内联——将所调用的代码嵌入到主调函数中。注意是否内联取决于实现——编译器有权不实际内联,如果它认为这是必要的或更符合预期的目标代码质量。 mutable 用于类的非静态非const数据成员,表示不受到成员函数的const的限制,可以在const...
classStudent{private:// 声明 StudentCaculate 类是 Student 类的友元类// 在 StudentCaculate 类中可以访问 Student 类中的私有成员friendclassStudentCaculate;} 3、友元类单向性 友元类单向性 : 友元类关系是单向的 , 声明一个类 B 是 另一个类 A 的 友元类 , ...
struct 是 public 的,class 是 private 的。 struct 作为数据结构的实现体,它默认的数据访问控制是 public 的,而 class 作为对象的实现体,它默认的成员变量访问控制是 private 的。 union 联合 联合(union)是一种节省空间的特殊的类,一个 union 可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值。当...
为了更好的理解继承和多态,做一个文本查询的小例子。 接口类:Query有2个方法。 eval:查询,返回查询结果类QueryResult rep:得到要查询的文本 客户端程序的使用方法: 接口类:Query,有一个私有的父类Query_base的智能指针。 父类Query_base有子类WordQu
关于友元类,如果,例如friend class A在B类的声明里面,那么B的成员就可以被共享,而A的不能被共享,也就是说:类A成员函数都是类B友元函数,能直接存取私有成员和保护成员。 使用友元类时注意:(1) 友元关系不能被继承。 (2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在...
- A. friend - B. public - C. private - D. protected 二、填空题 1. 在C++中,___ 是一种特殊的成员函数,它在对象生命周期结束时被调用。 2. C++中的___关键字用于定义静态成员变量或成员函数。 3. 使用___关键字可以定义一个常量,其值在初始化后不能被改变。 4. C++中,___是一种特殊的构造...