注册 登录
编程论坛 VC.NET论坛

关于"&"符号

xupeng 发布于 2006-02-12 15:24, 3637 次点击
关于AND符号
CToolBarCtrl&ToolBarCtrl = GetToolBarCtrl();中的“&”是什么意思?
38 回复
#2
冰镇柠檬汁儿2006-02-13 09:04
没见过,你能把相关的代码发上来吗,我研究一下。
#3
冰镇柠檬汁儿2006-02-13 09:25
不过光看你的代码我觉得CToolBarCtrl&ToolBarCtrl = GetToolBarCtrl();中
CToolBarCtrl是一个类名,ToolBarCtrl是一个引用名,GetToolBarCtrl()是一个函数或方法。
#4
xupeng2006-02-14 08:24
关于"&"符号的说明
My.h中的类(CMyToolBar)是自己写的,MainFrm.h有一个该类的对象,MainFrm.cpp实现在工具拦创建一个组合框功能。
#5
冰镇柠檬汁儿2006-02-14 09:21
应该就是引用了,引用就是某个变量的别名,
CToolBarCtrl&ToolBarCtrl = GetToolBarCtrl();中,
就是把GetToolBarCtrl()返回的值取一个别名,叫ToolBarCtrl
#6
xupeng2006-02-14 11:17
楼主再次提问

为什么不加"&"会报错,为什么非要加"&",望各位大侠多多指教!!!

#7
xupeng2006-02-14 11:19
高手还是有啊!!
多谢指教
#8
冰镇柠檬汁儿2006-02-14 13:38
CToolBarCtrl ToolBarCtrl = GetToolBarCtrl();
你是这么写的吗?
#9
xupeng2006-02-14 14:42
我本来这么写过,可是编译不能通过,加了"&"之后就可以通过了,这是为什么???
请讲得详细点,让我这个门外汗看懂,就算交个朋友!!
#10
冰镇柠檬汁儿2006-02-14 18:47
GetToolBarCtrl()方法中返回的是什么类型的?是指针吗?
#11
xupeng2006-02-15 08:00
返回的是CToolBarCtrl对象(实例)。
#12
冰镇柠檬汁儿2006-02-15 09:20
能看看相关的代码吗?
#13
xupeng2006-02-15 11:01
原代码
找到MainFrm.cpp中的CToolBarCtrl&ToolBarCtrl = GetToolBarCtrl();//////////有问题。
#14
xupeng2006-02-15 11:04
局部代码

BOOL CMyToolBar::CreateComboBox(int nIndex)
{
if(m_ComboBox.GetSafeHwnd())
return FALSE;
CToolBarCtrl&ToolBarCtrl = GetToolBarCtrl();//////////有问题

TBBUTTON button;
CRect rect;
button.fsStyle = TBSTYLE_SEP;

ToolBarCtrl.InsertButton(nIndex,&button);
ToolBarCtrl.InsertButton(nIndex,&button);
ToolBarCtrl.InsertButton(nIndex,&button);

//设置空位的宽度
SetButtonInfo(nIndex+1,IDC_MYCOMBO,TBBS_SEPARATOR,100);
SetButtonInfo(nIndex,ID_SEPARATOR,TBBS_SEPARATOR,12);
SetButtonInfo(nIndex+2,ID_SEPARATOR,TBBS_SEPARATOR,12);
GetItemRect(nIndex+1,&rect);
rect.top = 3;
rect.bottom = rect.top + 200;

if(!m_ComboBox.Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL,rect,this,IDC_MYCOMBO))
return FALSE;//////Continue
m_ComboBox.SetItemHeight(-1,15);
return TRUE;
}

#15
xupeng2006-02-15 11:19
我要上传文件
我怎样上传文件???
怎样查看帖子中上传的文件???
#16
冰镇柠檬汁儿2006-02-15 12:49
以下是引用xupeng在2006-2-15 11:19:00的发言:
我怎样上传文件???
怎样查看帖子中上传的文件???

选帖子上方的“回复帖子”

#17
冰镇柠檬汁儿2006-02-15 12:50
GetToolBarCtrl()呢?
#18
xupeng2006-02-15 16:12
应该能找到
GetToolBarCtrl();/////////////////////有问题,这一句。
#19
冰镇柠檬汁儿2006-02-15 19:37
CToolBarCtrl & GetToolBarCtrl();
这是GetToolBarCtrl()的定义,定义中有“&”,它返回的类型是CToolBarCtrl &类型,所以你去掉“&”就会出错。
#20
xupeng2006-02-16 08:15
多谢多谢
第19楼的帖子实在是经典!!!!!!!!
本人的问题解决了!!!!
#21
xupeng2006-02-18 16:17
不对呀!!!!!
我查MSDN了,MSDN上说GetToolBAR()返回一个CToolBarCtrl对象呀,没有&符号???!!!
#22
xupeng2006-02-19 11:17
有没有大侠能解决这个问题!!!???
#23
冰镇柠檬汁儿2006-02-19 17:28

不信就算了,这个东西不是很好找,你再自己找找吧。

#24
xupeng2006-02-20 08:02
有没有大侠能解决这个问题呀!?!?!?
#25
xupeng2006-02-21 16:40
这个问题又有新进展了!!!
如果我不加"&",编译器就会提示我:没有可用的复制构造函数或复制构造函数声明为“explicit”。
我查了MSDN,MSDN上说:复制构造函数从同一类型的另一个对象初始化某对象。(它生成源对象的副本。)如果没有定义任何构造函数,则编译器生成默认复制构造函数。这段话我不明白,你能不能指点指点!!!要详细一点!!!多谢大侠,这个问题对程序员来说挺重要的呦!!!
#26
xupeng2006-02-22 12:19
跪求大侠
给小弟指点指点吧!!!!!
#27
冰镇柠檬汁儿2006-02-22 14:47
你还真执着,觉得应该是,去掉“&”后,程序就找不到与之相对应的构造函数了。
#28
xupeng2006-02-22 17:23
高手!高手!高高手!

27楼的帖子说的在理!!
不过要是说的更通俗易懂我就更佩服你了!!
毕竟我是菜鸟呀!!

#29
xupeng2006-02-23 15:49
又有新进展!!
有人说这是类型转换!!到底咋回事????
#30
冰镇柠檬汁儿2006-02-23 17:07

CToolBar::GetToolBarCtrl

CToolBarCtrl& GetToolBarCtrl( ) const;

Return Value

A reference to a CToolBarCtrl object.

Remarks

This member function allows direct access to the underlying common control.

Use GetToolBarCtrl to take advantage of the functionality of the Windows toolbar common control, and to take advantage of the support CToolBarCtrl provides for toolbar customization.

For more information about using common controls, see the article Control Topics in Visual C++ Programmer’s Guide and Common Controls in the Windows 95 SDK Programmer’s Reference.

CToolBar Overview | Class Members | Hierarchy Chart

See Also CToolBarCtrl

#31
冰镇柠檬汁儿2006-02-23 17:08
要我说什么你才肯相信,上面我发的是从微软的专门的帮助软件(MSDN)里找到的。
#32
xupeng2006-02-23 17:40
我信了!
多谢多谢!!!!!!!!!!!!!!
#33
xupeng2006-02-24 08:59
我现在想问:

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

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

事?

#34
冰镇柠檬汁儿2006-02-24 10:49
CToolBarCtrl& GetToolBarCtrl( ) const;
请注意这句
#35
xupeng2006-02-24 17:30
我注意到这句了!

GetToolBarCtrl()是CToolBarCtrl类的成员函数,还是CToolBarCtrl&类的成员函数?&究竟是起到什么作用??
千万不要不耐烦!!!!!

#36
xupeng2006-02-25 09:14
我找到问题的根本了!!!
问题的根本是:CToolBarCtrl& GetToolBarCtrl( ) const;中为什么有"&"???
#37
xupeng2006-02-25 17:30
我的最后一个问题!!!!!!!!
根据CToolBar::GetToolBarCtrl
CToolBarCtrl& GetToolBarCtrl( ) const;
好象GetToolBarCtrl()返回的是CToolBarCtrl&类型的对象,可是MSDN说的返回值A reference to a CToolBarCtrl object.是啥意思,我的英语不好没看懂,望大侠多指教!!!
#38
冰镇柠檬汁儿2006-02-27 10:27
A reference to a CToolBarCtrl object.涉及CToolBarCtrl的一个对象。在GetToolBarCtrl的定义中是有“&”的,所以你在用的时候就要加上。
#39
xupeng2006-03-02 07:57
明白了
very much thank you !!
1