C++学习手记(二)——类的继承与派生

原创 2003年12月25日 10:25:00

                                C++学习手记(二)——类的继承与派生

                                                          陈根发


    由于类与对象的存在,使得C++变得具有更强大的生命力,这也是C++产生的原因之一。但是C++面对对象的魔力到底在那呢?昨天开始我逐渐感觉出来了!那就是类三大特性——封装,继承和多态,下面我就学习学习继承吧!
      类具有强大的继承与派生功能,使得使用C++的程序员可以大大提高程序代码的重用率,举个例子说明:
还是以“我”为一个类。
 Class me{
Private:
Char Name[10];
Int age;
Char sex;
}
     当我要申明一个“他”的类时,因为那些数据成员都是相同的,所以我们完全可以利用“我”来做基类,派生出“他”,派生的申明方法为
class 派生类名:派生方式  基类名{
    //派生类的数据成员和成员函数

};                      //注意,要以 ;结束
      那么派生方式主要又有那些呢?一是私有派生,关键字为 private,二是公有派生,关键字为public 。那么,两种不同的继承方式有会有什么不同结果呢?还是先看一个例子吧!
   #include<iostream.h>
class base{
int x;
public :
void setx (int n)
{x=n;}
void showx()
{cout <<x<<endl;}
};
class derived:private base{
int y;
public:
void setxy(int n,int m)
{setx(n);
y=m;}
void showxy()
{cout<<x<<y<<endl;}             //非法,私有派生类不能直接引用基类的私有成员
};
main()
{
derived obj;
obj.setxy(10,20);
obj.showxy();
return 0;
}
      运行错误!VC++提示的错误信息为error C2248: 'x' : cannot access private member declared in class 'base'  see declaration of 'x'
  这到底是怎么回事呢?只是因为私有派生类不能直接引用基类的私有成员。C++对派生的规定是:
   在公有派生情况下,基类中的所有成员的访问特性在派生类中维持不变;在私有派生情况下,基类中的所有成员在派生类中也成为私有成员。
这就是出错的原因,由于x 是基类中是私有成员,在私有派生中,基类中的私有成员不能被派生类成员访问。我们只要在出错的地方改为:
      showx();cout<<y<<endl;
   这下我们就可以看到结果:
10
20
     不知道我是不是写的很明白,自己认为,现在应该可以得出类的继承和派生特性:
1. 在私有派生中,基类中的私有成员在派生类中私有继承。所有的公有成员都只能成为私有派生类的私有成员,这些成员可以被派生类的成员函数使用,但是基类中的私有成员不允许被派生类的成员函数使用。
2. 在公有派生中。基类成员的可可访问性在派生类中维持不变!
3.    在公有派生情况下,基类中的所有成员的访问特性在派生类中维持不变;在私有派生情况下,基类中的所有成员在派生类中也成为私有成员。
好了,继承与派生就到这里吧。明天我要学习类的多态了。





————————————————————————————————————
    为做一个百分百的程序员而奋斗!
    个人说明:农民的儿子,或者说就是农民!二○岁以前过着平庸的生活,二○岁    以   后也不想传奇。
         穷是二十年的主打歌,劣质的大衣,带洞的牛仔,不是卖酷,而是现实所逼。一年吃的饭<=365*2。1.5元一餐占80%。2.5元一餐占19.9%,大餐偶尔(6元以上),都是同学聚会,或是生活补贴发放之时!
         郁闷时抽烟,袋烟!(城里人没有见过),3.5元一斤,烟起之时,举室皆惊,顾及旁人兄弟,不敢常抽。
         偶尔喝酒,不求醉否,只求尽兴!每喝,兄弟代付酒钱!
爱好写,或是代码,或是心情文字,或是打油诗,即兴则书,从不收藏(代码例外)。
         自小在将军县长大,耳染目睹,有所感染。兄弟有难,总是一马当先,加上乡下孩子吃苦耐劳,所以很少会输。
         自认颇具毅力,50元第一次出远门,为了我的大学;200元逛厦门,为了生计;徒步20公里,为了省2元公交。
         娱乐的主要活动是上网,不喜欢玩游戏,不喜欢耍MM,经常发帖。网友甚少,有则知心。
         喜欢三句话,都是网友所赐:
1. 上天不会辜负任何人,你付出多少,就会得到多少!(自我安慰)
                                     ——herry
2. 事业第一,爱情第二(自我勉励)
                             ——阿当
3. 只要过程正确,结局一定会好(自我警告)
                   ——陈忠
                                            2003-12-23

C++类和对象的继承和派生

1 实验内容及目的 l 实验目的 理解和掌握C++类和对象的继承和派生。 l 实验内容 创建一个MyPoint类来建模二维空间中的一个点。MyPoint类包含两个属性x和y,表示x轴和y轴坐标...
  • huangxuming1
  • huangxuming1
  • 2014年06月01日 11:12
  • 949

浅析C++继承与派生

测试环境: Target: x86_64-linux-gnu gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2.1)  定义 要分析继承,首先...
  • qq_33724710
  • qq_33724710
  • 2016年06月11日 10:44
  • 3144

c++ 类的继承与派生 知识点总结及例子

c++ 类的继承与派生 一、基本概念 1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。 ...
  • wyl4138
  • wyl4138
  • 2016年05月19日 08:46
  • 479

派生类与继承

一、引入继承的目的  1. 代码重用         类的继承和派生机制,使程序员无需修改已有类,只需在已有类的基础上,通过增加少量代码或修改少量代码的方法得到新的类,从而较好地解决了代码重用的问...
  • candyliuxj
  • candyliuxj
  • 2009年09月26日 21:33
  • 4466

(二)c++类的继承与派生

继承与派生
  • Emptynest
  • Emptynest
  • 2017年04月17日 16:27
  • 155

C++类的继承与派生<二>

派生类成员的标识符和访问:派生类中的成员访问属性有如下四种 第一,不可访问成员:从基类私有成员继承而来,派生类本身和派生类对象无权访问,继续继承的新类也无权访问。 第二,私有成员:从基类的成员继承...
  • Triple_WDF
  • Triple_WDF
  • 2018年01月10日 10:26
  • 41

C++ 学习(类的继承,派生)

基类指针或引用只能调用基类方法,但基类只能跟引用之只能调用基类继承过来的方法, 不可以将基类指针或引用赋值给派生类指针或者引用 #include #include using namespace s...
  • u013570474
  • u013570474
  • 2015年11月20日 10:07
  • 158

类与继承总结

一、类之间的关系 在面向对象技术中,类是数据和操作的集合,他们之间有三种主要关系:has-a,uses-a和is-a。 has-a表示类的包含关系,用于描述一个类由多个“部件类”构成。C++实现h...
  • Gao__Xiong
  • Gao__Xiong
  • 2016年03月11日 21:44
  • 488

C++ 类的继承与派生

继承性是面向对象程序设计最重要的特性之一,使软件有了可重用性,C++提供的类的继承机制。 继承与派生的概念 一个新类从已有的类那里获得已有的特性,这种现象称为类的继承。同样也可以说成已有的类派生出...
  • chaipp0607
  • chaipp0607
  • 2017年05月16日 10:20
  • 284

C++类的继承与派生

1. 一个包含多级派生/构造、析构函数的综合实例: #include using namespace std; class A {   public:        A(int ai, i...
  • kaishang0713
  • kaishang0713
  • 2013年10月21日 22:16
  • 406
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++学习手记(二)——类的继承与派生
举报原因:
原因补充:

(最多只允许输入30个字)