摘要: 众所周知C++包罗万象,支持很多范式。C++语言似乎就是想包容一切其他语言的优点,讲选择某写范式的权利留给语言使用者,这对于程序员来说,意味着自由。但是太大的自由往往意味着犯错,东西太广阔了,总有记不住的某些细节,譬如下面的代码[代码]这样的代码也能编译通过且赋值成功,真的很灵活。但是灵活的同时会造成程序的可读性变得很差,不加注意可能会产生某些莫名奇妙的bug;其实我更加喜欢严格的有些偏执的代码,严格有些偏执的编译器,让程序员减少出错的机会。幸好C++也考虑到了严格的禁止这种隐式类型转换,只要打开上述代码中的 //explicit 注释, 下面的直接赋值就会被编译器查出编译不过 阅读全文
posted @ 2010-12-18 22:28 霞光照耀 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 我们可以思考一下,当我们定义一个形式上空的类,C++为这个类提供了哪些默认功能?是否可以说齐全呢?有些看起来理所当然的东西,也是需要默认实现的。看简单代码另外注意语句仅仅调用了拷贝构造函数。区分"="是赋值还是copy constructor的关键就是要看"="左边的对象已经构造了没有如果已经构造了,就是进行赋值操作如果还没有构造,就是进行copy构造函数下面的代码证明了上述观点代码运行结果为Default ConstructorCopy ConstructorCopy ConstructorDefault ConstructorAsign Value Operator0 4247360 -1 阅读全文
posted @ 2010-12-18 21:59 霞光照耀 阅读(1552) 评论(1) 推荐(0) 编辑