您的位置:首页 > 财经 > 金融 > 昌大建设土地建设_网站设计制作的服务和质量_seo最新_无锡百度

昌大建设土地建设_网站设计制作的服务和质量_seo最新_无锡百度

2024/12/23 11:47:08 来源:https://blog.csdn.net/weixin_66194218/article/details/143414976  浏览:    关键词:昌大建设土地建设_网站设计制作的服务和质量_seo最新_无锡百度
昌大建设土地建设_网站设计制作的服务和质量_seo最新_无锡百度

构造函数调用顺序,先调用父类,再调用子类

#include<iostream>using namespace std;//基类   父类
class Base{
public: //公有权限   类的外部  类的内部 Base(){cout<<"Base()"<<endl;}Base(int a):baseA(a){cout<<"Base(int a)"<<endl;}~Base(){cout<<"~Base()"<<endl;}void setData(int a){baseA = a;}void show(){cout<<"baseA:"<<baseA<<"\t addr:"<<&baseA<<endl;}
protected: //保护权限  类的内部  子类private: //私有权限  类的内部int baseA;
};//子类  派生类
class Child: public Base
{
public: //公有权限   类的外部  类的内部 //在参数列表中指定 父类的构造函数Child():Base(100){cout<<"Child()"<<endl;}Child(int a,int b):Base(a),childA(b){cout<<"Child(int a)"<<endl;}~Child(){cout<<"~Child()"<<endl;}void show(){Base::show();cout<<"childA:"<<childA<<"\t addr:"<<&childA<<endl;}
protected: //保护权限  类的内部private: //私有权限  类的内部int childA;   };int main()
{Child mya(100,200);cout<<"mya size:"<<sizeof(mya)<<"\t addr:"<<&mya<<endl;mya.show();
}

打印结果:

gec@ubuntu:/mnt/hgfs/GZ22229/14C++/05/1-code$ ./a.out 
Base(int a)
Child(int a)
mya size:8     addr:0x7ffed6dc6630
baseA:100     addr:0x7ffed6dc6630
childA:200     addr:0x7ffed6dc6634
~Child()
~Base()

注意:

1、子类调用成员函数的时候会检测该成员函数在子类中是否存在,如果存在就调用自己的, 如果不存在就调用 父类的(前提是父类要有这个函数)

2、如果子类和父类存在同名函数,那么在子类中 父类的函数成员会被隐藏,默认调用的就是子类函数成员。如果要调用父类的函数成员必须添加类名和作用域。

mya.Base::showData();

练习1:

设计一个基类动物类(属性:体重,颜色,年龄 行为:跑,吃,睡),构造方法初始化属性

设计一个猫类继承动物类(属性:体重,颜色,年龄,品种 行为:跑吃睡,抓老鼠,叫)

定义一个猫对象--咖菲猫,调用猫的喊叫行为,抓老鼠行为 ,输出猫的属性

练习2:编写一个输出学生和教师数据的程序,学生数据有编号、姓名、年龄、学号和成绩;教师数据有编号、姓名、年龄、职称和部门。要求声明一个 person 类,并作为学生数据操作类 student 和教师数据操作类 teacher 的基类

#include <iostream>
#include <cstring>
//将命名空间打开
/*
设计一个基类 动物类(属性:体重、颜色、年龄 、性别    行为:吃喝拉撒)
设计一个猫类 继承动物类(属性:体重、颜色、年龄 、性别、    行为:吃喝拉撒、抓老鼠)
定义一个猫对象 ---断尾猫,调用猫的行为*/
using namespace std;
//动物类
class zoon{
public:   //公有权限zoon(int weight,int age, const char * color){this->weight = weight;this->age = age;strcpy(this->color,color);}void show(){cout << "weight:" << weight <<endl;cout << "age:"   << age <<endl;cout << "color:"  << color <<endl;}
protected://私有属性int weight;    //体重int age;         //年龄char color[256];  //颜色
};
//猫类
class cat:public zoon
{
public:   //公有权限cat(int weight,int age,const char * color,const char *type):zoon(weight,age,color) {strcpy(this->type,type);}void show(){cout << "weight:" << weight <<endl;cout << "age:"   << age <<endl;cout << "color:"  << color <<endl;cout << "type:"  << type <<endl;}void behavior(){cout << "behavior" <<endl; }
private://私有char type[256];// cat Broken_tail(10,6,"white","BrokenTail");
};
int main()
{cat mya(10,6,"white","BrokenTail");mya.show();mya.behavior();  //行为return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com