构造函数的重载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数的重载相关的知识,希望对你有一定的参考价值。

    重载 --- 一词多用

 1 //  上一次  是 在构造函数体内 通过赋值语句对数据成员实现初始化 
 2 // C++ 还有 一种 初始化 数据成员的 方法 --参数初始化表  来实现对
 3 // 数据成员的初始化 , 这种方法不在 函数体内 对成员初始化  而是在 函数的首部实现
 4 //例如定义构造函数 可以改用 以下形式  
 5 /* box::box(int h,int w,int len):height(h),width(w),length(len){} */
 6 //   表示 用 形参 h 的值  初始化 height 后面的  花括号 是空的  , 即 函数体是空的 没有任何执行语句   
 7 #include<iostream>
 8 using namespace std;
 9 class box
10 {
11 public:
12     box();   // 声明一个无参的构造函数 box
13     box(int h,int w,int len):height(h),width(w),length(len){}  //声明一个有参的构造函数
14     int volume();   //   声明一个 求体积的 函数
15 private:
16     int height;
17     int width;
18     int length;
19 };
20 box::box()        //   在 类外定义 无参函数 box0
21 {
22     height=10;
23     width=10;
24     length=10;
25 }
26 int box::volume()    //  在类外 定义 成员函数 volume
27 {
28     return(height*width*length);
29 }
30 int main()
31 {
32     box box1;
33     cout<<"the volume of box1 is   "<<box1.volume()<<endl;
34     box box2(10,30,25);   //建立对象   并且 赋初值 
35     cout<<"the volume of box2 is   "<<box2.volume()<<endl;
36     return 0;
37 }

 

以上是关于构造函数的重载的主要内容,如果未能解决你的问题,请参考以下文章

当两个重载具有相同的签名时调用构造函数重载

Delphi/pascal:用不同的原型重载构造函数

在 Visual Studio 中创建构造函数的代码片段或快捷方式

PHP中的构造函数重载

为啥我不能在 PHP 中重载构造函数?

无构造函数可以接受源类型,或构造函数重载决策不明确