C++的引用和java的引用的区别,该怎么解决
C++的引用和java的引用的区别
在C++中类似string a= "bbb ";中的a是实例对象,是把 "bbb "拷贝给a,但是java中a好象是个引用,比如:string a=new string( "bbb "),a就是 "bbb "的一个引用,而且如果我再定义一个string b=a;b 也 "bbb "的引用,并且b 也可以重新附值,作为另外对象的引用.
对于C++的引用和java的引用,我有点搞糊涂了,请高手帮我分析一下,谢谢!
------解决方案--------------------
C++,java的引用都是一样的,大哥,你知道什么是引用吗,string a=new string( "bbb "),string b=a,这样叫引用,引用只能是传递增一个变变,String a= "abc "; String & b=a;
b对变量a的引用,就是说b,a的空间是同一个,当下面a= "a ",b的值也改变,引用是指向同一空间.
java中没有传地址,很多通过引用代替指针操作.
------解决方案--------------------
关注
------解决方案--------------------
我学过Java和C#后也发现了这一点,和C++不同,它们中的对象都相当于C++中的引用,比如HashTable.Add (strKey,attrTemp); 每插入一个后下一次插入都要再用一次attrTemp=new attrtype ();而如果是c++只要用一次new 的操作就可以了,因为Add的操作肯定是复制一份对象作为另一个对象的成员,但Java中只是将成员指向这个new的对象就可以了.
在C++中类似string a= "bbb ";中的a是实例对象,是把 "bbb "拷贝给a,但是java中a好象是个引用,比如:string a=new string( "bbb "),a就是 "bbb "的一个引用,而且如果我再定义一个string b=a;b 也 "bbb "的引用,并且b 也可以重新附值,作为另外对象的引用.
对于C++的引用和java的引用,我有点搞糊涂了,请高手帮我分析一下,谢谢!
------解决方案--------------------
C++,java的引用都是一样的,大哥,你知道什么是引用吗,string a=new string( "bbb "),string b=a,这样叫引用,引用只能是传递增一个变变,String a= "abc "; String & b=a;
b对变量a的引用,就是说b,a的空间是同一个,当下面a= "a ",b的值也改变,引用是指向同一空间.
java中没有传地址,很多通过引用代替指针操作.
------解决方案--------------------
关注
------解决方案--------------------
我学过Java和C#后也发现了这一点,和C++不同,它们中的对象都相当于C++中的引用,比如HashTable.Add (strKey,attrTemp); 每插入一个后下一次插入都要再用一次attrTemp=new attrtype ();而如果是c++只要用一次new 的操作就可以了,因为Add的操作肯定是复制一份对象作为另一个对象的成员,但Java中只是将成员指向这个new的对象就可以了.