LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 984|回复: 4

VC++

[复制链接]
发表于 2003-2-22 01:26:30 | 显示全部楼层 |阅读模式
#inclde<iostream>
class aliasDemo
{
   int num;
     public:
     void display();
};
void aliasDemo::display()
{
   num=5;
   int &anum=num;
  cout<<"num="<<num<<"alias="<<anum<<endl;
   num=num+2;
  cout<<"num="<<num<<"alias="<<anum<<endl;
   num=num+4;
  cout<<"num="<<num<<"alias="anum<<endl;
   }

     int main()
     {
aliasDemo al;
al.display();
   return 0;
}


在这段程序中 其中这段 小弟不明白  
num=5;
   int &anum=num;
  cout<<"num="<<num<<"alias="<<anum<<endl;
   num=num+2;
  cout<<"num="<<num<<"alias="<<anum<<endl;
   num=num+4;
  cout<<"num="<<num<<"alias="anum<<endl;
我有点不明白  请各位大侠帮帮忙,小弟弟不甚感激
我是菜鸟 还请多多指教   
QQ:51898651
发表于 2003-6-10 21:44:21 | 显示全部楼层
好象没有什么问题啊!
num=5;  //给NUM赋值。由于num是类公有的。所以可以赋值
int &anum=num; //先定义一个anum变量。这句的意思,就是给num做一个引用。
/×---------------------------------------------------------------
cout<<"num="<<num<<"alias="<<anum<<endl;
num=num+2;
cout<<"num="<<num<<"alias="<<anum<<endl;
num=num+4;
cout<<"num="<<num<<"alias="anum<<endl;
------------------------------------------------------------×/
这里就不用说了吧!就是打印结果,我刚才也说过了。这个就是一个变量。而不是一个const量。所以载这里是可以变化的。结果应该是:
num=5 alias=5
num=7 alias=7
num=11 alias=11
我的分析结果对吗?因为我现在用的是LINUX系统,而我现在还不知道如何在LINUX下编译C++程序呢!所以就只能是这样了。
发表于 2003-6-10 22:01:55 | 显示全部楼层
贴代码注意缩进,并改正几点小错误。

  1. #incl[color=red]u[/color]de <iostream>

  2. [color=red]using namespace std;[/color]

  3. class aliasDemo
  4. {
  5.   int num;
  6. public:
  7.   void display();
  8. };

  9. void aliasDemo::display()
  10. {
  11.   num=5;
  12.   int &anum=num;
  13.   cout<<"num="<<num<<"alias="<<anum<<endl;
  14.   num=num+2;
  15.   cout<<"num="<<num<<"alias="<<anum<<endl;
  16.   num=num+4;
  17.   cout<<"num="<<num<<"alias="[color=red]<<[/color]anum<<endl;
  18. }

  19. int
  20. main(void)
  21. {
  22.   aliasDemo al;
  23.   al.display();
  24.   return 0;
  25. }
复制代码

“num=5; //给NUM赋值。由于num是类公有的。所以可以赋值”
这段话意思不明确,应该是,num是类的私有成员,而display是类的成员函数,所以在display里可以修改num。
发表于 2003-6-10 22:02:05 | 显示全部楼层

同意

看来楼主对“引用”概念不太清楚,翻出老课本,抄一段:

所谓引用,就是给变量起一个别名,换句话说,是使新变量和原变量共用一个地址。这样,无论对哪个变量进行修改,其实都是对同一地址的内容进行修改。因而原变量和新变量---规范地说是变量和它的引用--总是具有相同的值。
C++是通过引用运算符&来定义一个引用的。如果这个引用不是用作函数的参数或返回值,则在说明时必须进行初始化。
例:int num=50; //这个变量必须赋值
    int & ref=num; //ref就是num的别名了
发表于 2003-6-11 03:17:01 | 显示全部楼层
对于搞不清楚指针是什么的人,加上引用可能就更糊涂了。

要记住,引用永远是要引用一个存在的对象的,引用是不可以成为 null 的。引用在初始化以后,不可能再引用到别的对象,所以

  1.    Object& o_ref = orig_object; // 初始化
  2.    o_ref = another_object       // 赋值,orig_object 也变了。
复制代码


另外,这个帖子的标题和内容不符,文不对题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表