| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1538 人关注过本帖
标题:关于"&"符号
只看楼主 加入收藏
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 
高手!高手!高高手!!
10楼的帖子实在是经典!!!

反清复明 http://xupeng.
2006-02-23 15:45
西部天狼
Rank: 1
等 级:新手上路
帖 子:95
专家分:0
注 册:2006-2-23
收藏
得分:0 

&出现在左值中表示引用

所谓引用,简单的说“引用是一种没有指针语法的指针。与指针一样,引用提供对对象的间接访问。”


学习-->编程-->交流-->再学习-->再编程-->再交流
2006-02-24 02:44
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
...

[此贴子已经被作者于2006-2-24 6:42:27编辑过]



自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-02-24 05:44
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 
大侠们的话经典!

我好象有门路了!!


反清复明 http://xupeng.
2006-02-24 07:45
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 
我现在想问:

CToolBarCtrl类中定没定义复制构造函数?如果定义了,那就用=附值呗,干吗非加&。如果

没定义,光加&就能解决问题吗?我查了C++宝典了,人家使用复制构造函数时只用了=,没用&。到底咋回

事?


反清复明 http://xupeng.
2006-02-24 08:55
西部天狼
Rank: 1
等 级:新手上路
帖 子:95
专家分:0
注 册:2006-2-23
收藏
得分:0 
请看:GetToolBarCtrl 返回一个对 CToolBarCtrl 对象的引用。可以使用该引用调用工具栏 (ToolBar) 控件类的成员函数(MSDN)

应该明白了吧

学习-->编程-->交流-->再学习-->再编程-->再交流
2006-02-25 00:15
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
xupeng,
对那个 & 的作用,我其实已经在4楼的帖子中回答你, 你只是没有看懂。在4楼的帖子里讲到了三点:
第一点, 从C++ 语言出发讲了5个Default, 也就是说一个合格的编译器应该能够实现这5个Default
第二点,跟你讲了 & 的作用,那就是对象的连续调用。
第三点,就是数据类型的转换。
或许我一下子说的太多了,使得你产生了不必要的概念迷失。
你的程序我收到了,我也试了,让我吃惊的是,这个错误的的确确是这样的。我想了很久,不理解。我也写了测试程序,在测试程序中,没有出现那样的现象,下面的代码为用于理解 & 的测试程序:

#include <iostream>
using namespace std;

class A
{
private:
int a;
public:
A(){a = 0;}
A(int value){a = value;}
void display(){ cout<<a<<endl;}
};

class B
{
private:
A a;
public:
B(const A & aa){ a = aa;}
A & test(){return a;}
};

int main()
{
A a(6);
a.display();
B b(a);
A & aa = b.test(); // pay attention here
// 请你将这个 & 去掉,你看看运行的结果是什么
aa.display();
return 0;
}

以上的程序我是在VC6,0中编译,运行的,可以通过,那么你的程序为什么不行呢?这个是我不理解的,从C++ 语言的角度去看, 去掉 那个 & 不会对程序有伤害,但是为什么不行呢? 那个所谓的错误信息:你没有定义copy constructor 和 assignment 函数是站不住脚的,因为符合C++ 的编译器会为你生成默认 copy constructor 和 assignment function. 所以我只能将这个过错怪罪于MFC,由于你的程序是MFC的程序,所以VC 在这个层面没有严格的执行C++ 标准,对于这样的失误,是不能原谅的。

你应该清楚我的观点了,我个人认为这是VC 的一个Bug,与C++ 无关,你不必在这个问题上较劲了。不过我感觉,你没有理解那个 & 的作用,倒是问题中的关键。

恕我直言,你对C++ 的知识很缺乏, 我在4楼的描述,你都觉得理解上有困难,那么现在你就去搞什么MFC,你觉得有希望吗?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-02-25 00:58
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 
多谢 多谢!!
小弟多谢!!

反清复明 http://xupeng.
2006-02-25 09:10
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 
可是我觉得不是BUG!!!
问题的根本是:CToolBarCtrl&amp; GetToolBarCtrl( ) const;中为什么有"&amp;"???

反清复明 http://xupeng.
2006-02-25 09:13
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 
我的最后一个问题!!!
根据CToolBar::GetToolBarCtrl
CToolBarCtrl& GetToolBarCtrl( ) const;
好象GetToolBarCtrl()返回的是CToolBarCtrl&类型的对象,可是MSDN说的返回值A reference to a CToolBarCtrl object.是啥意思,我的英语不好没看懂,望大侠多指教!!!

反清复明 http://xupeng.
2006-02-25 17:32
快速回复:关于"&"符号
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017747 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved