一个关于bool型指针的问题

fafj 2001-06-02 11:48:00

bool* flag=&CheckBox1->Checked;
if (* flag) Label1->Caption="true";
else Label1->Caption="false";

[C++ Error] Unit1.cpp(16): E2027 Must take address of a memory location
E2027 Must take address of a memory location Compiler error
Your source file used the address-of operator (&) with an expression that can't be used that way; for example, a register variable.

是不是控件的属性是无法取得地址的?
我原来没想到会有这些问题的
...全文
928 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fafj 2001-06-02
  • 打赏
  • 举报
回复
因为form中用了其他的函数改变Checked属性,所以我想如果用某个指针变量指向checked那就可以省去很多麻烦,不必老是检查Checked的状态。
如果无法取得地址,那么实现我的想法是否还有其他变通的方法?
孩皮妞野 2001-06-02
  • 打赏
  • 举报
回复
Wingsun老大已经讲得很明白了。

TCheckBox::Checked是一个__property, not a member variable.

这是C++Builder引入C++的一个新概念。

smartboyme 2001-06-02
  • 打赏
  • 举报
回复
看提示不就知道了吗?
Your source file used the address-of operator (&) with an expression that can't be used that way。
此处,不允许使用&取地址。
如果Checked这个属性是封装在类中,中间的机制不是很明确。也许没有取地址的方法。
Wingsun 2001-06-02
  • 打赏
  • 举报
回复
当然了,你只要看一看属性是如何定义的你就知道了。
__property int Count = {read=GetCount, nodefault};
属性是通过掉用其它的方法和变量来访问的,当然不可以了。
xycleo 2001-06-02
  • 打赏
  • 举报
回复
if(ChickBox1->Checked)
Label1->Caption="true";
else
Label1->Caption="false";
孩皮妞野 2001-06-02
  • 打赏
  • 举报
回复
定义CheckBox1->OnClick事件处理程序

void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
Label1->Caption = CheckBox1->Checked ? "true" : "false";
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧