摘要:
——编译器对非虚方法使用静态联编(编译时匹配),对虚方法使用动态联编(运行时匹配)。 未使用虚方法时,指针类型在编译时已知,因此编译器在编译时,可以将成员方法关联到相应的类,这被称为静态联编; 使用虚方法时,通常只有在运行程序时才能确定对象类型,所以编译器生成的代码在程序执行时将成员函数关联到相应的 阅读全文
摘要:
——方法的行为应取决于调用该方法的对象。这种较复杂的行为称为多态——具有多种形态,即同一个方法的行为随上下文而异。 virtual实现了对象调用正确的方法或方法序列。 实现多态的两种机制: 在派生类中重新定义基类的方法(不会改变基类的方法)。 使用虚方法。 声明函数时若使用关键字virtual,则这 阅读全文
摘要:
——派生类需要自己的构造函数。 派生类中可以根据需要添加额外的数据成员和成员函数,甚至可以给予继承的原成员函数新的定义。 基类指针或引用可指向派生对象,反过来则只能使用强制类型转换。 派生类对象可使用基类的非私有成员。 可使用派生对象初始化基类对象或赋值。 一般不允许将基类对象赋给派生类对象(上面第 阅读全文
摘要:
——公有派生即public派生 1 class RatedPlayer : public TableTenisPlayer 2 { 3 ... 4 }; RatedPlayer派生自TableTenisPlayer 使用公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分也将成为派生类的一 阅读全文
摘要:
从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。 如运动员类派生出乒乓球运动员类,前者为基类,后者为派生类,乒乓球运动员继承了运动员的全部特征。 阅读全文
摘要:
通常,类库是以源代码的形式提供的,这意味着可以对其进行修改,以满足需求。 类继承,不用修改源码,能够从已有的类派生出新的类,而派生类继承了原有类(称为基类)的特征,包括方法。 继承机制只需提供新特性,甚至不需要访问源代码就可以派生出类。 阅读全文
摘要:
class Queue { private: Queue(const Queue & q) : qsize(0) {} // preemptive definition 伪私有方法 Queue & operator = (const Queue & q) { return *this; } // p 阅读全文
摘要:
如果new无法创建新节点,它将引发异常,最终的结果是,除非提供了处理异常的代码,否则程序将终止 阅读全文
摘要:
——调用构造函数时,对象将在括号中的代码执行前被创建,因此无法在括号内初始化对象的常量成员。 Queue::Queue(int qs) { front = rear = NULL; items = 0; qsize =qs; // not acceptable! qsize是一个常量成员 } 因此C 阅读全文
摘要:
——C++的一项特性是在类中嵌套结构或类声明 在类声明中声明的结构、类或枚举被称为是被嵌套在类中,其作用域为整个类。这种声明不会创建数据对象,而只是指定了可以在类中使用的类型。 class Queue { struct Node { Item item; struct Node * next; }; 阅读全文