c++构造函数

  1. 构造函数的名称与类名相同。
  2. 构造函数没有返回类型,即使是void也没有。
  3. 构造函数用于创建对象时初始化对象的成员变量。
  4. 如果我们没有显式定义构造函数,则编译器会为我们提供一个缺省构造函数。该缺省构造函数的函数体为空,用于创建不带任何参数的对象。
  5. 构造函数不能被继承,因此没有父类或子类的概念。
  6. 如果我们定义了自己的构造函数,则默认构造函数将不会被创建
  7. 构造函数可以是private、public或protected,通常为public,以便在任何地方都可以创建类的对象。但如果希望只有类的成员函数或友元函数可以创建对象,那么可以将构造函数设为private或protected。
  8. 构造函数可以使用逗号分隔的初始化列表来初始化类的成员变量,需要注意的是,初始化列表中的成员变量顺序应该与类定义中的成员变量顺序一致,否则可能会导致未定义的行为。此外,如果某个成员变量没有在初始化列表中进行初始化,那么编译器将使用默认构造函数来初始化该成员变量。

class MyClass {

public:

MyClass(int a, double b) : member1(a), member2(b) {}

private:

int member1;

double member2;

};

9 如果成员变量的类型是引用类型或常量类型,那么必须使用初始化列表语法进行初始化,否则将会导致编译错误。

class MyClass {

private:

int& ref_member; // 引用类型的成员变量

const double const_member; // 常量类型的成员变量

public:

MyClass(int a) : ref_member(a), const_member(a * 2) {}

};

10 一旦有了一个构造函数,编译器就会确保不管在什么情况下它总会被调用。

class Y {

int i;

public:

Y(int A){i=A};

}

Y y;//编译错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值