栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 类中的 构造函数、拷贝构造函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 类中的 构造函数、拷贝构造函数

一、构造函数

① 概念

	构造函数就是和类名一样,而且是没有返回值的函数。如下所示:
	    
	class demo_class
	{
	public:
	    demo_class();//构造函数 如果不指定属性,则默认为私有的
	};

如果类里面的构造函数demo_class是私有的,那样就会编译器就会报错。如下图所示:

② 特点

① 如果自己没有定义构造函数,则编译器会使用默认构造函数。
② 默认的构造函数是一个空的函数。
③ 构造函数可以重载,只需要通过形参的不同辨别即可。
③ 作用

构造函数会在定义类对象是自动被调用,所以有初始化类成员数据的作用。同时构造函数不能是私有的。

以下代码是构造函数的初始化作用以及重载的实例:

#include 
using namespace std;
class demo_class
{
public:
    string string_data;
    demo_class();//构造函数 默认为私有类
    demo_class(string string_data);
};

demo_class::demo_class()
{
    cout<<我是来打酱油的构造函数!<string_data = string_data;
}

注意!当是以下形式定义demo_class类对象时,只有打酱油的构造函数会自动启动!

int main()
{
    demo_class demo_obj;//这样定义对象则只会调用打酱油的构造函数
    return 0;
}

注意!当是以下形式定义demo_class类对象时,只有初始化string_da的构造函数会自动启动!

int main()
{
    demo_class demo_obj(旦丁在此!);//把demo_obj类对象中的string_data初始化为 “旦丁在此”    
    cout< 

二、拷贝构造函数

① 概念

和构造函数一样,唯一不同的时拷贝构造函数有形参,该形参接收一个该类的对象。具体如下所示:

class demo_class
{
    public:
        string string_data;
        demo_class();//构造函数 默认为私有类
        demo_class(string string_data);
        demo_class(demo_class const &tmp_dome);
};

② 作用

拷贝构造函数中的拷贝可以理解成赋值,把一个类对象赋值给另外一个对象。(简单点来说就是把形参的对象赋值给你定义的对象),
也就是初始化类对象的作用。具体写法如下:

class demo_class
{
    public:
        string string_data;
        demo_class();//构造函数 默认为私有类
        demo_class(string string_data);
        demo_class(demo_class const &tmp_dome);//拷贝构造函数
};


demo_class::demo_class(const demo_class  &tmp_demo)
{
    string_data = tmp_demo.string_data;
}
int main()
{
   demo_class demo_obj_one("旦丁在此!");//定义一个被拷贝的对象
   demo_class demo_obj_two;//调用拷贝构造函数,把demo_obj_one对象拷贝给demo_obj_two对象
   cout< 

运行结果

我是来初始化类中的string_data成员的!
旦丁在此!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352608.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号