继承的作用以及在子类中初始化所有数据的方法

1.方便扩充程序,使之不必重写整个程序

代码示例

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 class father
 5 {
 6 protected:
 7     string name;
 8     int tall;
 9 public:
10     father(string a, int i);
11     father(){ cout << "构造基类\n"; }
12     void print(){ cout << name << "身高为" << tall << "\n"; }
13     ~father(){ cout << "释放基类对象\n"; }
14 };
15 /*-------------相当于原有程序的功能-------------*/
16 father::father(string a, int i)
17 {
18     cout << "\n在基类的构造函数内\n";
19     name = a;
20     tall = i;
21     print();
22     cout << "离开基类构造函数\n";
23 }
24 class son :public father
25 {
26 private:
27     int weight;
28 public:
29     son(string a, int i, int j);
30     void print1();
31     ~son(){ cout << "\n释放子类对象\n"; }
32 };
33 /*--------相当于在原有程序功能上增加了新的功能-----------*/
34 son::son(string a, int i, int j)
35 {
36     name = a;
37     tall = i;
38     cout << "\n在子类构造函数中\n";
39     weight = j;
40 }
41 void son::print1()
42 {
43     father::print();
44     cout << "体重:" <<weight;
45 }
46 int main()
47 {
48     son a("Mike", 180, 80);
49     a.print1();
50     cout << "\n结束了\n";
51         return 0;
52 }

运行结果

方案二

代码示例

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 class father
 5 {
 6 protected:
 7     string name;
 8     int tall;
 9 public:
10     father(string a, int i);
11     father(){ cout << "构造基类\n"; }
12     void print(){ cout << name << "身高为" << tall << "\n"; }
13     ~father(){ cout << "释放基类对象\n"; }
14 };
15 /*-------------相当于原有程序的功能-------------*/
16 father::father(string a, int i)
17 {
18     cout << "\n在基类的构造函数内\n";
19     name = a;
20     tall = i;
21     print();
22     cout << "离开基类构造函数\n";
23 }
24 class son :public father
25 {
26 private:
27     int weight;
28 public:
29     son(string a, int i, int j);
30     void print1();
31     ~son(){ cout << "\n释放子类对象\n"; }
32 };
33 /*--------相当于在原有程序功能上增加了新的功能-----------*/
34 son::son(string a, int i, int j):father(a,i)//不同之处
35 {
36     //name = a;
37     //tall = i;
38     cout << "\n在子类构造函数中\n";
39     weight = j;
40 }
41 void son::print1()
42 {
43     father::print();
44     cout << "体重:" <<weight;
45 }
46 int main()
47 {
48     son a("Mike", 180, 80);
49     a.print1();
50     cout << "\n结束了\n";
51         return 0;
52 }

结果显示

显然,方案二更好些。

时间: 2024-08-27 19:02:34

继承的作用以及在子类中初始化所有数据的方法的相关文章

c++与java中子类中调用父类成员的方法

1 java中: 2 import java.util.Scanner; 3 public class ClassTest{ 4 public static void main(String args[]){ 5 child ch=new child(2); 6 parent p=ch; 7 p.print(); 8 //p.print2();//调用错误,父类中没有改成员方法,该方法只属于子类! 9 } 10 } 11 12 class parent{ 13 int xx; 14 parent

java怎么调用子类中父类被覆盖的方法

public class b { { void show() { System.out.println("b"); } } public class c extends b { void show() { System.out.println("c"); } void showc() { super.show(); show(); } } public static void main(String[] args) { c x=new c(); x.showc();

MySQL中快速复制数据表方法汇总

本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: 将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: CREATE TABLE mytbl_new LIKE production.mytbl; INSERT mytbl_new SELECT * FROM production.mytbl; 第一个命令

清空SQL Server数据库中所有表数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,

【转】oracle 中随机取数据的方法

oracle 中随机取数据的方法: 1.快速随机取数据(推荐使用): select * from MEMBER sample(1) where rownum <= 10 2.随机取数据,较慢 select * from (  select * from MEMBER order by dbms_random.value) where rownum<=10 ========原文======== 最近在做系统时用到了随机抽取记录的问题: 上网上查找了很多相关资料,发现了不同的方法及其差异.都是基于

继承实现的原理、子类中调用父类的方法、封装

一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--->A--->E--->B--->C. class E: def test(self): print('from E') class A(E): def test(self): print('from A') class B: def test(self): print('from B'

Day17:继承实现的原理、子类中调用父类的方法、封装

一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--->A--->E--->B--->C. class E: def test(self): print('from E') class A(E): def test(self): print('from A') class B: def test(self): print('from B'

java中初始化对象变量的方法

1.在类定义对象的地方初始化 2.在类构造器中初始化 3.在正要使用这些对象之前,惰性初始化,或者叫惰性加载 4.使用实例初始化    在方法里使用初始化 版权声明:本文为博主原创文章,未经博主允许不得转载.

R中读取EXCEL 数据的方法

最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享: 第一:R中读取excel文件中的数据的路径: 假定在您的电脑有一个excel文件,原始的文件路径是:D:\work\data\1 如果直接把这个路径拷贝到R中,就会出现错误,原因是: \是escape character(转义符),\\才是真正的\字符,或者用/ 因此,在R中有两种方法读取该路径: 1:在R中输入一下路径:D:\\work\\data\\1