c++构造器

1. c++中类的构造函数不会自动初始化类的变量,它们的值将取决于内存中读取的值,所以,在构造函数中,建议对成员变量赋上初值.

2. 当为一个类设定了有参数的constructor之后,编译器将不会为类提供默认的构造函数, 这时,可以使用下列两方法之一提供默认的构造函数

A::A(){};
//or
A::A() = default;

但是,这两种是有区别的, 变量的trival 和pod属性是不一样的.(trival和pod分别是什么含义呢?)

#include <type_traits>

struct X {
    X() = default;
};

struct Y {
    Y() { };
};

int main() {
    static_assert(std::is_trivial<X>::value, "X should be trivial");
    static_assert(std::is_pod<X>::value, "X should be POD");
    
    static_assert(!std::is_trivial<Y>::value, "Y should not be trivial");
    static_assert(!std::is_pod<Y>::value, "Y should not be POD");
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值