zoukankan      html  css  js  c++  java
  • 灵活的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 注释, 下面的直接赋值就会被编译器查出编译不过

  • 相关阅读:
    HDU What Are You Talking About
    谷歌面试题
    POJ 2299 UltraQuickSort
    单链表排序
    HDU Hat’s Words
    C++ const关键字
    求二叉树任意两点间的距离
    HDU Phone List
    POJ 2352 Stars
    C++ volatile关键字
  • 原文地址:https://www.cnblogs.com/lovelyxia/p/1910230.html
Copyright © 2011-2022 走看看