向基类构造函数传递参数
来源:互联网 发布:苹果usb共享网络 编辑:程序博客网 时间:2024/05/16 07:04
在创建派生类的构造函数时,有两种方法对数据进行初始化
第一种:在派生类中创建一个构造函数,然后初始化所有数据(从基类哪里继承来的数据和子类的数据)
这种方法显然是多余的,因为基类已经有了恰当的构造函数,为何还要重复构造呢,况且在派生类中对基类进行初始化这种做法
也是不可取的
第二种:在派生类中创建一个构造函数,用该构造函数调用基类的构造函数并且向构造函数传递初始值
显然第二种做法效率要高些,并且出错的几率要小些
//利用基类的构造函数初始化数据,例程如下:
#include<iostream>
#include<string>
using namespace std;
class father
{
protected:
string name;
int tall;
public:
father(string a,int i);
father(){cout<<"构造基类\n";}
void print(){cout<<name<<"身高为"<<tall<<"\n";}
~father(){cout<<"释放基类对象\n";}
};
father::father(string a,int i)
{
cout<<"\n在基类的构造函数内\n";
name=a;
tall=i;
print();
cout<<"离开基类构造函数\n";
}
class son:public father
{
private:
int weight;
public:
son(string a,int i,int j);
void print1();
~son(){cout<<"\n释放子类对象\n";}
};
son::son(string a,int i,int j):father(a,i)
{
//name=a;
//tall=i;
cout<<"\n在子类构造函数中\n";
weight=j;
}
void son::print1()
{
father::print();
cout<<"体重:"<<weight;
}
int main()
{
son a("Mike",180,80);
a.print1();
cout<<"\n 结束了\n";
return 0;
}
显示地调用父类的构造函数可以使代码的可读性打打增强,别人在读这段代码时候,一下子就可以明白子类构造函数中前两个参数的值是
通过父类的构造函数赋给了父类中定义的两个成员,而不是赋给了子类中定义的成员,子类仅仅是继承来了父类的两个成员
- 向基类构造函数传递参数
- 向基类构造函数传递参数
- C++学习 向基类构造函数传递参数
- 【c++程序】向基类构造函数传递参数
- 向基类构造函数传递参数的(两种方法)
- (未完成)C++ 向基类的构造函数传递参数
- 如何在子类中向父类的构造函数传递参数
- [反射类] -- PHP动态实例化对象并向构造函数传递参数
- 构造函数传递参数
- PHP面向对象——实例化对象时向构造函数传递参数
- 如何向基类传递参数
- MapReduce向Map函数传递参数: Configuration类
- MapReduce向Map函数传递参数: Configuration类
- C++类构造函数初始化列表,子类向父类传参数
- C++类构造函数初始化列表,子类向父类传参数
- 派生类的构造函数定义以及参数传递
- VFP向Win32函数传递参数
- python 向函数传递多个参数
- WebLogic:受管服务器
- 在IOS中使用opencv
- Windows下Resin-pro-4.0.37的配置
- 要问潜在雇主的 10 个问题
- QTCreater 调试入门问题
- 向基类构造函数传递参数
- Apriori算法Java实现示例
- eclipse默认的classpath
- java PreparedStatement需要关闭,不然会内存溢出
- javascript Date format(js日期格式化)
- IOS系列——Tabbar的基本使用
- ACM俱乐部 3919 旅游景点 【最大团】
- Android检查网络状态
- Unix/Linux时间函数和日历函数