构造函数的定义和构造函数的重载

Posted

tags:

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

构造函数:处理对象的初始化,是一种特殊的成员函数,与其他函数不同,不需要用户来调用它,在建立对象时自动执行。

注意:(1)每建立一个对象,就调用一次构造函数;

(2)构造函数没有返回值,因此也没有类型,作用只是对对象进行初始化;

(3)构造函数不需要被用户调用,也不能被用户调用。

构造函数的重载:构造函数具有相同的名字,而参数的个数或参数类型不相同。

1  编写一个基于对象的程序,在类中用带参数的构造函数对数据成员初始化,求长方柱的体积。

:程序:

#include<iostream>

using namespace std;

class Box

{

public:

Box(int, int, int);

int volume();

private:

int height;

int width;

int length;

};

Box::Box(int h,int w,int len)

{

height = h;

width = w;

length =len;

}

int Box::volume()

{

return (height*width*length);

}

int main()

{

Box box1(12,25,30);

cout << "The volume of box1 is:" << box1.volume() << endl;

Box box2(15, 30, 21);

cout << "The volume of box2 is:" << box2.volume() << endl;

system("pause");

return 0;

}

结果:

The volume of box1 is:9000

The volume of box2 is:9450

请按任意键继续. . .

2  定义两个构造函数,其中一个有参数,一个无参数,求长方柱的体积。

解:建立对象box1时,没有给出参数,系统找到与之对应的无参构造函数Box,执行此构造函数的结果是使3个数据成员的值均为10,然后输出box1的体积;建立对象box2时,给出3个实参,系统找到有3个形参的构造函数Box,执行此构造函数的结果是使3个数据成员的值为1530,25,然后输出box2的体积。

程序:

#include<iostream>

using namespace std;

class Box

{

public:

Box();

Box(int h, int w, int len) :height(h), width(w), length(len) {}

//定义一个有参的构造函数,用参数的初始化列表对数据成员初始化

int volume();

private:

int height;

int width;

int length;

};

Box::Box()//在类外定义无参构造函数Box

{

height = 10;

width = 10;

length = 10;

}

int Box::volume()

{

return(height*width*length);

}

int main()

{

Box box1;

cout <<"The volume of box1 is:"<<box1.volume()<<endl;

Box box2(15,30,25);

cout << "The volume of box2 is:" << box2.volume() << endl;

system("pause");

return 0;

}

结果:

The volume of box1 is:1000

The volume of box2 is:11250

请按任意键继续. . .


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1754910

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

c++中拷贝构造函数和赋值运算符重载本质上一样么

第18课构造函数(中)

C++类-构造函数的重载

C++类-构造函数的重载

为啥 TypeScript 中没有重载的构造函数实现?

JAVA-初步认识-第七章-构造函数重载