
继承与派生的区别
继承是面向对象语言的一个重要机制,通过继承可以在一个一般类的基础上建立新类,被继承的类称为基类,在基类上建立的新类称为派生类。
继承和派生其实都是一回事,只是说法不同罢了。
如:子类继承了父类,父类派生了子类。
继承与派生
\\\/\\\/(1)设计一个person类,其数据成员的访问属性为private,并包含一个信息输出函数display(). class person{public: void display(){cout< class student: public person{public: void show(){display();cout< class student: private person{public: void show(){display();cout< class person{public: virtual void show(){cout< 这个... 问题的关键不在于什么是设备类,你不用管什么是设备类。 将题目改一下: 定义一个类device,其中含有一个不带参数的构造函数,有一个comm_device类,它是device类的派生类,也含有一个不带参数的构造函数;还有一个gra_device类,它也是device类的派生类,它不含构造函数这样看的明白吗 1.是A的fun()2.最简单的方法就是就是定义C的fun()是virtual,然后程序调用哪个fun()会在runtime决定 class Base{public: void Function_A() { \\\/\\\/..... }protected: void Function_B() { \\\/\\\/..... }private: void Function_C() { \\\/\\\/..... }};class Derived_A : public Base{public: void Function_D() { \\\/\\\/基类的public和protected在子类中都能被访问 Function_A(); Function_B(); \\\/\\\/Function_C();\\\/\\\/Error:基类的private在子类中不能被访问!!! }};class Derived_B : private Base{public: void Function_E() { \\\/\\\/基类的public和protected在子类中都能被访问 Function_A(); Function_B(); \\\/\\\/Function_C();\\\/\\\/Error:基类的private在子类中不能被访问!!! }}int main(){ Base b; Derived_A dA; Derived_B dB; b.Function_A();\\\/\\\/public可以被访问 \\\/\\\/b.Function_B();\\\/\\\/Error: protected不能被访问!!! \\\/\\\/b.Function_C();\\\/\\\/Error: private不能被访问!!! dA.Function_D();\\\/\\\/public可以被访问 dA.Function_A();\\\/\\\/public继承,原public在子类中仍然为public,可以被访问 \\\/\\\/dA.Function_B();\\\/\\\/Error: public继承,原protected在子类中仍然为protected,不能被访问!!! \\\/\\\/dA.Function_C();\\\/\\\/Error: public继承,原private在子类中完全不可见,不能被访问!!! dB.Function_E();\\\/\\\/public可以被访问 \\\/\\\/dB.Function_A();\\\/\\\/Error: private继承,原public在子类中为private,不能被访问!!! \\\/\\\/dB.Function_B();\\\/\\\/Error: private继承,原protected在子类中为private,不能被访问!!! \\\/\\\/dB.Function_C();\\\/\\\/Error: private继承,原private在子类中完全不可见,不能被访问!!!}以上程序及注解应该能解释你的疑问了,还有问题的话,百度Hi继承与派生
类的继承与派生
初学继承与派生的很菜问题



