c++中,构造函数(也称为实例化函数)是特殊的公有成员函数,我们也可以把它定义为私有和保护的,但是在绝大多数情况下,构造函数被定义为公有成员函数。
构造函数有以下特征:
1.构造函数的函数名与类名相同。
2.构造函数没有函数类型返回说明。但是构造函数是有返回值的,它返回的就是它所创建的对象。
3.在程序运行时,当新的对象被建立,该对象所属的类的构造函数自动被调用,在该对象生存期中也只调用这一次。
4.构造函数可以重载,系统在自动调用时按一般函数重载的规则选一个执行。
5.构造函数可以在类中定义,也可以在类外定义。
6.如果类说明中没有给出构造函数,则c++编译器会自动给出一个缺省的构造函数(无参构造函数)。
只要程序员定义了一个构造函数,系统就不会自动生成缺省构造函数。只要构造函数是无参或者只要参数均有缺省值的,c++编译器都认为是缺省的构造函数,并且缺省构造函数只有一个。
构造函数有三个任务:
1.创建对象;
2.对对象里面的成员进行初始化;
3.可以进行类型转换.
接下来写几个构造函数的例子:
还是上篇博客《c++ &类和对象》中商品Cgoods这个类。
class Cgoods
{
private:
char Name[21];//商品名称
int Amount;//商品数量
float Price;//商品价格
float Value;//商品价值
public:
//带有三个参数的构造函数
Cgoods(char *name,int amount,float price)
{
strcpy(Name,name);
Amount=amount;
Price=price;
Value=price*amount;
}
//带有两个参数的构造函数
Cgoods(char *name,float price)
{
strcpy(Name,name);
Amount=0;
Price=price;
Value=0.0;
}
//缺省构造函数(无参构造函数)
Cgoods()
{
Name[0]='\0';
Amount=0;
Price=0.0;
Value=0.0;
}
};
当我们对上面含有两个参数的构造函数做一个修改,将它里面的两个参数都设置为参数具有缺省值的情况

本文详细介绍了C++中的构造函数和析构函数。构造函数用于初始化对象,其名称与类名相同,无返回类型,可以重载。析构函数在对象生命周期结束时自动调用,负责清理工作。文章通过示例代码解析了构造函数和析构函数的使用,包括动态内存管理和对象的生命周期。
最低0.47元/天 解锁文章
1283

被折叠的 条评论
为什么被折叠?



