C++编程(D)

C 编程(D)

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 声明所在类的成 员函数和友元使用 protected:它的名字只能由其声明所在类的 成员函数和友元,以及由该类的派生类的成 员函数和友元使用 public:它的名字可以由任何函数使用 Beijing University of Posts & Telecommunications Beijing [email protected] 15.3.1 保护成员 派生类只能访问它这种类型对象基类中的保护成 员,这样能防止由于一个派生类破坏了属于另一个 派生类的数据而产生的微妙错误 class Buffer{ protected: char a[128]; }; class Linked_buffer:public Buffer{/*...*/}; class Cyclic_buffer:public Buffer{ void f(Linked_buffer* p){ a[0] = 0; // 可以,自己的保护成员 p->a[0] = 0; // 不可以,其他类型的保护成员 } }; Beijing University of Posts & Telecommunications Beijing [email protected] 15.3.1.1 保护成员的使用 简单的public/private模型就能很好的满足具体类 型概念的需要,派生的引入使得这种模型无法迎合 派生类的特殊需要 声明一些protected数据成员通常都是设计错误, 将位于一个公共类的大量数据提供给派生类使用, 将使这些数据容易遭到破坏 private通常使更好的选择,也使默认情况 以上所有批评对于protected函数都不重要, protected是描述供派生类使用的操作的极好方式 Beijing University of Posts & Telecommunications Beijing [email protected] 15.3.2 对基类的访问 象成员一样,基类也可以是private, protected或者public class X:public B{}; class Y:protected B{}; class Z:private B{}; public派生使得派生类称为基类的一个子类 型,protected在经常需要进一步派生的类 层次结构中非常有用,private则提供更强 的限定 Beijing University of Posts & Telecommunications Beijing [email protected] 对基类的访问 考虑从基类B派生出的类D 如果B是private基类,那么它的public和protected成 员只能由D的成员函数和友元访问,只有D的成员和友 元能将D*...
View Full Document

This note was uploaded on 02/10/2014 for the course ECE C++ taught by Professor Xiaoshengtang during the Fall '13 term at BUPT.

Ask a homework question - tutors are online