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

C++构造函数

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

C++构造函数

构造函数 1.作用

一种特殊类型的方法,在每次实例化对象时运行

2.代码举例 2.1 示例1:
#include 

class A
{
    public:
        float a, b;
        void print()
        {
            std::cout << a <<  " ,  " << b << std :: endl;
        }
};

int main()
{
    A a;
    a.print();
    return 1;
}

运行结果:

当我们实例化A,系统为它分配内存,我们没有初始化内存,得到的是内存空间原有的那些东西

2.2 示例2:

当在main中添加 std::cout << a.a << " , " << a.b << std :: endl;

int main()
{
    A a;
    std::cout << a.a <<  " ,  " << a.b << std :: endl;
    a.print();
    return 1;
}

运行结果:

不同编译器可能不一样,有的会编译不过报错(未初始化局部变量),原因有待深入…

3. 使用 3.1 使用构造函数初始化
#include 

class A
{
    public:
        float a, b;
        A ()
        {
            a = 0.0f;
            b = 0.0f;
        }
        void print()
        {
            std::cout << a <<  " ,  " << b << std :: endl;
        }
};

int main()
{
    A a;
    std::cout << a.a <<  " ,  " << a.b << std :: endl;
    a.print();
    return 1;
}

结果:

3.2 有参数的构造函数
#include 

class A
{
    public:
        float a, b;
    
    // 无参构造
    A ()
        {
            a = 0.0f;
            b = 0.0f;
        }

    // 有参构造
        A(float c,float d)
        {
            a = c;
            b = d;
        }

    
        void print()
        {
            std::cout << a <<  " ,  " << b << std :: endl;
        }
};

int main()
{
    A a(5.0,6.0);
    std::cout << a.a <<  " ,  " << a.b << std :: endl;
    a.print();
    return 1;
}

一个类可以有很多构造函数 前提是参数个数不同或者参数类型不同

类似于同名函数(函数重载 即有相同的函数名,但是有不同的参数个数与参数类型)

 A(float c,float d)
 {

 }
A(int c,int d)
{

}
A(float c,float d,float e)
{
    
}

这里需要注意有参构造的时候注意传值类型

如 float 类型

A a(5.0f , 6.0f);
3.3 默认的构造函数

每个类默认有一个空参空实体的构造函数(如果写了构造函数,则默认构造函数就没有了,需要时需手动添加)

A ()
{
}

如果不想使用构造函数有两种方法

// 1 私有化
private :
	A(){}
	
// 2 删掉
A() = delete;
4. 特殊的构造函数

拷贝构造函数(复制构造函数)

移动构造函数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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