灵活的C++

众所周知C++包罗万象,支持很多范式。

C++语言似乎就是想包容一切其他语言的优点,讲选择某写范式的权利留给语言使用者,这对于程序员来说,意味着自由。但是太大的自由往往意味着犯错,东西太广阔了,总有记不住的某些细节,譬如下面的代码

#include <iostream>
using namespace std;

class TestClass{
private:
    int data;
public:
    TestClass(): data(0){}
    //explicit 
        TestClass(int data): data(data){}
    int getData(){
        return data;
    }
};

int main(int argc, char *argv[])
{
    TestClass tc(10);
    tc = 11;
    cout<<tc.getData()<<endl;
    return 0;
}
tc = 11;

这样的代码也能编译通过且赋值成功,真的很灵活。但是灵活的同时会造成程序的可读性变得很差,不加注意可能会产生某些莫名奇妙的bug;

其实我更加喜欢严格的有些偏执的代码,严格有些偏执的编译器,让程序员减少出错的机会。

幸好C++也考虑到了严格的禁止这种隐式类型转换,只要打开上述代码中的 //explicit 注释, 下面的直接赋值就会被编译器查出编译不过
原文链接: https://www.cnblogs.com/lovelyxia/archive/2010/12/18/1910230.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/18930

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午7:52
下一篇 2023年2月7日 下午7:53

相关推荐