c++的一些小技巧

1、关于继承的小技巧

继承是c++的特性,它赋予了c++足够的灵活。而在一些特殊情况时,一定要对此进行限制。有一些关键字可以做到:

class 类名 = final ;//指定这个类无法继承

类名() = default ; //指定这个构造函数是默认构造函数

类名(类名 &a) = delete ; //指定这个拷贝构造函数无法使用,想不到delete还有这种妙用

explict 类名(标准类型 & a) //显式指定构造函数,主要是非pod类型需要显式类型转换。

2、编程时可以用typedef巧妙的给类名起别名。

3、关于auto和decltype:

        关键字自动推导更像是个占位符,让编译器自动推导该变量是什么类型。这极大程度的节省了人工成本,程序员无需记住复杂的内容,只需专注于程序的逻辑即可。

        以auto为例auto a = 3;但不能auto it;因为编译器无法推导出it的类型。

        auto还可以用于auto &it = a;配合*、const等一起使用。

        此外,还有decltype。decltype的使用方法类似于一个函数,int x = 0; decltype(x) x1; decltype(x) & x2 = x; decltype(&x)   x4;这里,x4回被推导int*

        区别于autodecltype可以放在表达式右侧,因此: using int_ptr = decltype(&x);

        而且decltype还可以用于类内的定义

class demo final{

public:

    using set_type = std::set<int>;

private:

    set_type m_set;
    
    using iter_type = decltype(m_set.begin());
    
    iter_type m_pos;
};

4、const、volatile、mutable:

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值