对象和变量的区别

stardust20 2009-11-27 11:30:40
对象是指我们自己定义的类型,还有指针的变量吗?
然后变量是指基本类型的变量?
struct A之类的是对象还是变量
不解...求高手解答,谢谢
...全文
1241 59 打赏 收藏 转发到动态 举报
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
huqiao214 2012-05-07
  • 打赏
  • 举报
回复 1
变量的类型很多,它属于类类型。广义地讲,对象包含了变量,即变量也称为一种对象,狭义地讲,将对象看做类的实例,对象是某个类的对象
yeah_aly 2009-11-27
  • 打赏
  • 举报
回复
同样迷茫
飞天御剑流 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 stardust20 的回复:]
引用 26 楼 supermegaboy 的回复:
引用 25 楼 stardust20 的回复:
引用 8 楼 a283489754 的回复:
你可以按照java和C#的理解方式:一切皆为对象,万事万物都是对象。就ok了,这种概念没必要死抠

java中好像基本类型都不是从objet中派生出来的,这怎么理解?


类型与对象谈不上什么派生关系,类型是对象的一个属性,复合类型才是基本类型的派生。

谢谢,那可以用他所说的一切皆为对象,万事万物都是对象,来理解吗?int i=0;i也可以看成一个对象?
[/Quote]

我对java不熟悉,无法作出评价。但“一切皆为对象”在C/C++里是不成立的,例如函数,就不是对象。
dskit 2009-11-27
  • 打赏
  • 举报
回复
stardust20 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 supermegaboy 的回复:]
对象是一段存储空间,而变量是一段命名的存储空间。

C++标准的内容:

1.8 The C+ + object model

An object is a region of storage.


3 Basic concepts

A variable is introduced by the declaration of an object. The variable’s name denotes the object.


[/Quote]
谢谢,要好好理解下。。。
plee1037 2009-11-27
  • 打赏
  • 举报
回复
ding
stardust20 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 supermegaboy 的回复:]
引用 25 楼 stardust20 的回复:
引用 8 楼 a283489754 的回复:
你可以按照java和C#的理解方式:一切皆为对象,万事万物都是对象。就ok了,这种概念没必要死抠

java中好像基本类型都不是从objet中派生出来的,这怎么理解?


类型与对象谈不上什么派生关系,类型是对象的一个属性,复合类型才是基本类型的派生。
[/Quote]
谢谢,那可以用他所说的一切皆为对象,万事万物都是对象,来理解吗?int i=0;i也可以看成一个对象?
stardust20 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 cattycat 的回复:]
变量是可以修改的,包含内部类型的变量,如int, char, 等;也包括对象,对象是类的实例,像A a.
常量是不能修改的,也可以是内部类型和对象,
const int a=10;
const A a;

没必要在这个概念上纠缠。
[/Quote]
哦哦。。是不是说一个类的对象也可以说成是变量,在没有用const限定的时候
飞天御剑流 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 stardust20 的回复:]
引用 8 楼 a283489754 的回复:
你可以按照java和C#的理解方式:一切皆为对象,万事万物都是对象。就ok了,这种概念没必要死抠

java中好像基本类型都不是从objet中派生出来的,这怎么理解?
[/Quote]

类型与对象谈不上什么派生关系,类型是对象的一个属性,复合类型才是基本类型的派生。
stardust20 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 a283489754 的回复:]
你可以按照java和C#的理解方式:一切皆为对象,万事万物都是对象。就ok了,这种概念没必要死抠
[/Quote]
java中好像基本类型都不是从objet中派生出来的,这怎么理解?
飞天御剑流 2009-11-27
  • 打赏
  • 举报
回复
对象是一段存储空间,而变量是一段命名的存储空间。

C++标准的内容:

1.8 The C+ + object model

An object is a region of storage.


3 Basic concepts

A variable is introduced by the declaration of an object. The variable’s name denotes the object.

zgjxwl 2009-11-27
  • 打赏
  • 举报
回复
这个楼主看定义吧。。。
superbtl 2009-11-27
  • 打赏
  • 举报
回复
类是一种类型 可以定义对象 定义的对象也是变量
cattycat 2009-11-27
  • 打赏
  • 举报
回复
变量是可以修改的,包含内部类型的变量,如int, char, 等;也包括对象,对象是类的实例,像A a.
常量是不能修改的,也可以是内部类型和对象,
const int a=10;
const A a;

没必要在这个概念上纠缠。
superbtl 2009-11-27
  • 打赏
  • 举报
回复
struct A *ptr = new A[...];
ptr是指针变量
ptr[n]是对象
VeiwoZouhui 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 stardust20 的回复:]
不太理解对象是特殊的变量,这个特殊指什么?
[/Quote]

int a;
我们认为 a 是变量。
class A
{
...
};
A a;
我们认为a 是一个对象。

我们可以把int 理解成 
class int
{
...
}

结果就一样了。
就这样简单.
stardust20 2009-11-27
  • 打赏
  • 举报
回复
还有常量是对象吗?谢谢
stardust20 2009-11-27
  • 打赏
  • 举报
回复
不太理解对象是特殊的变量,这个特殊指什么?
VeiwoZouhui 2009-11-27
  • 打赏
  • 举报
回复
对象是指我们自己定义的类型,还有指针的变量吗?
然后变量是指基本类型的变量?
struct A之类的是对象还是变量

对象是指我们自己定义的类型 正确
然后变量是指基本类型的变量 正确
struct A之类的是对象还是变量  
A a; a表示对象。

可以这样理解:
基本类型: 变量.
由class struct来的: 对象.
对象是一种特殊的变量。
zhongchengli 2009-11-27
  • 打赏
  • 举报
回复
ding
加载更多回复(39)

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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