c++学习--继承与派生

继承和派生

1 含有对象成员(子对象)的派生类的构造函数,定义派生类对象成员时,构造函数的执行顺序如下:

1 调用基类的构造函数,对基类数据成员初始化;

2 调用对象成员的构造函数,对对象成员的数据成员初始化;

3 执行派生类的构造函数体,对派生类数据成员初始化。

代码如下:#include<iostream.h>

class base{

int x;

public:

base(int i)

{

x=i;

cout<<"基类的构造函数"<<endl;

}

~base()

{

cout<<"基类的析构函数"<<endl;

}

void show()

{

cout<<x<<endl;

}

};

class derived:public base

{

base d;

public:

derived(int i):base(i),d(i)

{

cout<<"派生类的构造函数"<<endl;

}

~derived()

{

cout<<"派生类的构造函数"<<endl;

}

};

int main()

{

derived obj(5);

obj.show();

return 0;

}

撤销对象时,析构函数的调用顺序正好相反

2 多个基类构造函数的执行顺序,则严格按照派生类声明来执行

实验:构建一个类book,其中含有两个私有数据成员qu和price, 建立一个有5个元素的数组对象,将qu初始化为1~5,将price 初始化为qu的10倍。显示每个对象的qu*price。

代码如下:

1 #include<iostream.h>

class book{

private:

int qu,price;

public:

book(int q,int p)

{

qu=q;

price=p;

}

void show()

{

cout<<"qu*price="<<qu*price<<endl;

}

};

int main()

{

book ob[5]={

book(1,10),book(2,20),book(3,30),book(4,40),book(5,50)

};

for(int i=0;i<5;i++)

ob[i].show();

return 0;

}

2使用 C++ 的类建立一个简单的卖玩具的程序。类内必须具有玩具单价、售出数量以及每种玩具售出的总金额等数据,并为该类建立一些必要的函数,并在主程序中使用对象数组建立若干个带有单价和售出数量的对象,显示每种玩具售出的总金额。

代码如下:

#include<iostream.h>

class toy{

private: float price;

int count;

double sum;

public: toy(float x,int y)

{

price=x;

count=y;

}

double Countsum()

{

sum=price*count;

return sum;

}

};

int main()

{

toy ob[5]={

toy(12.3,10),toy(11.4,5),toy(17.8,19),toy(16.7,15),toy(3.5,10)

};

for(int i=0;i<5;i++)

cout<<"价格是:"<<ob[i].Countsum()<<endl;

return 0;

}

时间: 2024-08-03 13:30:17

c++学习--继承与派生的相关文章

C++语言学习(十)——继承与派生

C++语言学习(十)--继承与派生 一.类之间的关系 1.类之间的组合关系 组合关系是整体与部分的关系.组合关系的特点:A.将其它类的对象作为当前类的成员使用B.当前类的对象与成员对象的生命周期相同C.成员对象在用法上与普通对象相同Computer类由其它多个部件类组合而成,当Computer销毁时,其它部件对象同时销毁. #include <iostream> using namespace std; class Memory { public: Memory() { cout <&l

C++学习笔记44:继承与派生

类的组合,类的继承 类的组合(汽车类,轮子类,此时可以把轮子类组合到汽车类:) 类的继承(交通工具类,汽车类,此时汽车类可以派生自交通工具类:) 组合:常用描述has a.. 继承:常用描述is a .. 如果既可以用组合又可以用派生解决,那首选组合方式: 继承与派生的目的 继承的目的:实现设计和代码的重用 派生的目的:当新的问题出现,原有程序无法解决,需要对原有的程序进行改造 派生类的构成 吸收基类的成员 改造基类的成员 添加新的成员 吸收基类的成员 默认情况下派生类包含了全部的基类中除了构造

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3:

C++之继承与派生(1)

C++之继承与派生(1) http://www.cnblogs.com/CaiNiaoZJ/archive/2011/08/08/2130817.html 继承是面向对象程序设计中的重要特性,是软件复用的一种形式.其实继承和派生就是同一种概念的不同说法罢了,通常我们说子类继承父类,父类派生出子类.说实话,学习和了解了C++的继承与派生后,发现我对面向对象中的继承与派生有了更深刻的理解.在更加深入了解C++关于继承方面的知识之前,我想先讲一下C++中派生与继承的基本概念,它是之后学习派生类的构造与

C++奇淫技巧,程序员为啥天天学继承与派生,真的有这么难吗

继承与派生 1.1继承与派生的概念 在C++中,可重用性是通过继承这一机制来实现的.所谓继承,就是在一个已存在的类的基础上建立一个新的类.已存在的类称为基类,新建立的类成为派生类.(与对象的复制做区别)一个新类从已有的类那里获得其已有特性,这种现象称为类的继承. C++奇淫技巧,程序员为啥天天学继承与派生,真的有这么难吗派生类继承了基类的所有数据成员和成员函数,并可以对成员作必要的增加或调整.创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交

程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1

描述 写一个MyString 类,使得下面程序的输出结果是: 1. abcd-efgh-abcd- 2. abcd- 3. 4. abcd-efgh- 5. efgh- 6. c 7. abcd- 8. ijAl- 9. ijAl-mnop 10. qrst-abcd- 11. abcd-qrst-abcd- uvw xyz about big me take abcd qrst-abcd- 要 求:MyString类必须是从C++的标准类string类派生而来.提示1:如果将程序中所有 "My

C++继承与派生

2017-06-25 23:00:59 c++中的继承和派生是面向对象编程中的一个重要内容,通过继承可以实现代码的复用,同时继承也是实现多态性的基础. 一.c++继承的基本形式 class 派生类名:继承方式 基类名,继承方式 基类名 {}: 继承方式主要有三种,public ,private ,protected. 缺省条件下是private继承,三种中public继承用的最多,不同的继承方式决定了子类中从基类继承过来的成员的访问属性. public继承: 基类的public,protecte

四.OC基础--1.文档安装和方法重载,2.self和super&amp;static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&amp;私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

模块的封装之C语言类的继承和派生

[交流][微知识]模块的封装(二):C语言的继承和派生 在模块的封装(一):C语言的封装中,我们介绍了如何使用C语言的结构体来实现一个类的封装,并通过掩码结构体的方式实 现了类成员的保护.这一部分,我们将 在此的基础上介绍C语言类的继承和派生.其实继承和派生是一个动作的两种不同角度的表达 .当我们继承了一个基类而创造了一个新类时,派生的概念就诞生了.派生当然是从基类派生的.派生出来的类当然是继承了基类的 东西.继承和派生不是一对好基友,他们根本就是一个动作的两种不同的说法,强调动作的起始点的时候