标签:http sp java on 问题 bs 代码 as tt
Java和C++最显著的区别体现在对象的处理上。Java中,对象变量在内部被当作指针处理。Java文献指出将对象变量作为引用,不过它们与C++中的引用并不完全相同。所谓引用,就是一个介于指针和变量之间的东西。
---------正是有这个本质的区别,才会很多JAVA,OK 的代码,再c++里面确实错误的. ------java 的引用概念和 c++ 引用不是同一个意思。 java 的引用和c++ 的指针,比较类似。
例子:
c++ : string a = null--error 错误发生的原因是 string源码的默认构造函数不支持。 如果string 默认构造函数支持,其实也是可以的(因为他编译是OK的,说明语法没有问题,运行的时候报错,说明构造函数不支持而已)
string 默认构造函数源码:
__CLR_OR_THIS_CALL basic_string(const _Elem *_Ptr)
: _Mybase()
{// construct from [_Ptr, <null>)
_Tidy();
assign(_Ptr); // 因为_Ptr 是 NULL 这里回出错
}
string* a =null ---ok 指针可以为空
java String a=null ----ok Java中,对象变量在内部被当作指针处理
参考文献:
http://zh.wikipedia.org/wiki/Java%E5%92%8CC%2B%2B%E7%9A%84%E5%B0%8D%E7%85%A7
http://bbs.csdn.net/topics/190137939
标签:http sp java on 问题 bs 代码 as tt
原文地址:http://www.cnblogs.com/porter/p/4164538.html