C++ Primer 阅读记录之继承类的构造函数
2016-05-23 00:00
288 查看
继承类对于基类的构造函数继承有几种情况
1.继承基类的无参数构造函数,形如:
class base
{
public:
base()
{
printf("伙计!基类构造函数被继承啦!");
}
};
class Derived :public base
{
public:
Derived()
{
}
};
这样,运行结果为:
伙计!基类构造函数被继承啦!
像这样,基类的无参数构造函数可以隐式的被继承,无需再继承类中多做处理。
对于基类有参数的构造函数,我们可不可以隐式继承呢?我们做如下实验:
class base
{
public:
base()
{
printf("伙计!基类构造函数被继承啦!");
}
base(int x)
{
printf("伙计!基类构造函数被继承啦!x=%d\n",x);
}
};
class Derived :public base
{
public:
Derived(int x)
{
printf("我是继承类的带参数构造函数!x=%d\n", x);
}
};
运行Derived(1);
运行结果:
伙计!基类构造函数被继承啦!
我是继承类的带参数构造函数!x=1
可以看到,先运行了基类的默认构造函数,然后再运行自己的带参数的构造函数,并没有运行基类的带参数的构造函数!对于基类有参数的构造函数,如果继承类想要继承,需要做如下处理:
class base{
public:
base(){
printf("伙计!基类构造函数被继承啦!");
}
base(int x)
{
printf("伙计!基类构造函数被继承啦!x=%d\n",x);
}
};
class Derived :public base
{
public:
Derived() {
}
Derived(int x) :base(x)
{
printf("我是继承类的带参数构造函数!x=%d\n", x);
}
};
运行Derived(1);
运行结果:
伙计!基类构造函数被继承啦!x=1
我是继承类的带参数构造函数!x=1
:base(x)其实就是 初始化列表 在调用自身构造函数前,显式调用base(x),这个很好理解。
这里我们就知道,带参数的基类构造函数是不能被继承的。
知识其实很简单,重点是运用在实际工作中时,我们设计程序时,要注意基类的带有参数的构造函数,在继承类中的使用,怎么使用才能好让阅读代码的人理解!
1.继承基类的无参数构造函数,形如:
class base
{
public:
base()
{
printf("伙计!基类构造函数被继承啦!");
}
};
class Derived :public base
{
public:
Derived()
{
}
};
这样,运行结果为:
伙计!基类构造函数被继承啦!
像这样,基类的无参数构造函数可以隐式的被继承,无需再继承类中多做处理。
对于基类有参数的构造函数,我们可不可以隐式继承呢?我们做如下实验:
class base
{
public:
base()
{
printf("伙计!基类构造函数被继承啦!");
}
base(int x)
{
printf("伙计!基类构造函数被继承啦!x=%d\n",x);
}
};
class Derived :public base
{
public:
Derived(int x)
{
printf("我是继承类的带参数构造函数!x=%d\n", x);
}
};
运行Derived(1);
运行结果:
伙计!基类构造函数被继承啦!
我是继承类的带参数构造函数!x=1
可以看到,先运行了基类的默认构造函数,然后再运行自己的带参数的构造函数,并没有运行基类的带参数的构造函数!对于基类有参数的构造函数,如果继承类想要继承,需要做如下处理:
class base{
public:
base(){
printf("伙计!基类构造函数被继承啦!");
}
base(int x)
{
printf("伙计!基类构造函数被继承啦!x=%d\n",x);
}
};
class Derived :public base
{
public:
Derived() {
}
Derived(int x) :base(x)
{
printf("我是继承类的带参数构造函数!x=%d\n", x);
}
};
运行Derived(1);
运行结果:
伙计!基类构造函数被继承啦!x=1
我是继承类的带参数构造函数!x=1
:base(x)其实就是 初始化列表 在调用自身构造函数前,显式调用base(x),这个很好理解。
这里我们就知道,带参数的基类构造函数是不能被继承的。
知识其实很简单,重点是运用在实际工作中时,我们设计程序时,要注意基类的带有参数的构造函数,在继承类中的使用,怎么使用才能好让阅读代码的人理解!
相关文章推荐
- OJ题目-使用+-|等符号表示数字,进行运算【C语言】
- leetcode_c++:Combination Sum(039)
- 用C语言实现循环链表
- C++第六次作业
- c++ 基础知识整理(二)
- c++ primer(第五版)学习笔记及习题答案代码版(第十章)泛型算法
- 请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配
- c语言学习笔记13之二维数组1
- c++第6次作业
- GeekBand C++第二周学习感悟
- C/C++中一些不太注意到的小知识点--[锦集]
- c++-作业6
- B00008 C++实现的大整数计算(一)
- 作业:C++作业6
- C++第六次实验(数组操作)
- c++上机作业6
- c++中怎么求二维数组的长度
- c++上机实验6项目三
- C++作业6
- c++中:和::的用法