use*_*450 7 c++ pointers reference
可能重复:
C++中指针变量和引用变量之间有什么区别?
C++中的Class和mean是什么?它与Class*有什么不同?
Class& foo;
Class* foo;
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 20
&version表示引用,而*version表示指针.对于典型的SO帖子而言,差异太大了.我建议你从C++ FAQ lite开始
http://www.parashift.com/c++-faq-lite/references.html
我通常不喜欢用"你应该使用谷歌"答案来回答帖子.然而,这是我强烈建议你google的一个主题.特别是谷歌"c ++指针与参考".关于这个主题有大量的信息,这些页面的讨论将胜过我们在这里写的任何内容.
*是一个指针,&是一个参考.两者之间的区别在于指针是必须被解除引用的存储区域,例如.通过 - >运算符,以便"看到"一个类实例.引用是"别名",只是同一个类实例的替代名称.您不需要将 - >运算符与引用一起使用.您使用点运算符.
就个人而言,我很少使用引用,主要是当我有一个我在堆栈上分配的值对象时.new运算符始终返回一个指针,然后您必须取消引用该指针.此外,引用中最棘手的问题之一是您不能将它们设置为NULL.在某些情况下,拥有一个接受对象指针或NULL的函数是很方便的.如果您的函数接受引用,则无法传递NULL(但是您可以使用Null对象模式)
Class*可以指向任何类对象,也可以不指向任何类对象.
一个Class&always总是指向一个类对象,并且永远不会指向另一个类对象.
此外,我相信Bjarne是那些声称"C中的数组无法修复"的人的成员,一个Class*可以指向一个完整的dang-dang 类对象数组,在内存中一个接一个地排列,在C中绝对没有办法判断一个Class*是指一个还是多个.
归档时间: |
|
查看次数: |
15620 次 |
最近记录: |