这些都是什么? static_cast dynamic_cast const_cast reinterpret_cast (type)value (C 风格转换) type(value) (函数式转换) 在哪些情况下使用这些转换方式?如何确定使用哪种转换方式?
我已经写了将近20年的C和C++代码,但是这些语言中有一个方面我从来没有真正理解过。显然我使用过常规转换,即MyClass *m = (MyClass *)ptr; 代码中有很多转换,但似乎还有两种其他类型的转换,我不知道它们之间的区别。以下代码行有什么区别?MyClass *m = (MyC...
我来自Java背景并开始使用C ++中的对象。但是有一件事情让我想起,那就是人们经常使用指向对象的指针而不是对象本身,例如这个声明:Object *myObject = new Object; 与其...不如:Object myObject; 或者不使用函数,而是像这样使用testFunc()...
正如 Joel 在 Stack Overflow podcast #34 中指出的那样,在 C Programming Language(又称:K&R)中,提到了 C 数组的这一属性:a[5] == 5[a] Joel 表示这是由于指针算术运算,但我仍然不理解。 为什么 a[5] =...
我们现在有了许多新特性的C++11。一个有趣而令人困惑的特性(至少对我来说)是新的nullptr。 嗯,不再需要那个讨厌的宏NULL了。 int* x = nullptr; myclass* obj = nullptr; 不过,我还是不明白nullptr是如何工作的。例如,维基百科文章...