A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yaozeyang_2014 中级黑马   /  2014-3-23 11:08  /  1406 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yaozeyang_2014 于 2014-3-24 14:07 编辑

在一个类的成员变量里,类型不同,变量名相同可以吗?如果不可以,为什么呢?
  1. int _weight;
  2. double _weight;
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

正序浏览
在一个类里面,定义的全局变量名相同,类型不同,当然不行了。因为当程序一开始执行的时候就在内存中给他分配空间,你分配的空间存储的数据不一样,但内存中的变量名一样,他就不知道找哪一个变量,你再把局部变量和成员变量以及变量如何在内存中分配的相关视频好好看一下吧,毕向东老师讲的有
回复 使用道具 举报
在行为实现,在函数中,一个结构体定义的内部成员名,一个类的内部成员的声明,总之一个完整的程序运行时不允许变量名相同,即使类型不同也是不可以的。如果相同则会引起编译的混乱,当程序引用时不知用哪个变量而出现错误。不同的函数中定义的局部变量名可以重复使用的。如果定义了全局变量,那么在函数中也不可以重新定义同变量名的其它变量!
如:
int text()
{
int a;
}
int main()
{
int a;//这里面是不允许在次出现声明变量名为a的变量
}

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
当然不可以了。因为下面的代码要使用的话就只是写变量_weight,这样编译器就无法知道到底用的是哪个类型的_weight了。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马