C++变量和对象的区别联系

原创 2012年03月21日 13:15:34

对象和变量这两个概念莫要搞乱,颈是颈,椎是椎,虽然两者都对应着一块内存,但是从不同的角度去理解内存就会产生不同的意义。

  1. 变量:所谓变量就是一种定义,通过定义编译器将会开辟一段空间,并将这段内存空间和这个变量的名字捆绑在一起。从这个意思去理解,其实说白了:变量名就是内存在代码中可视化的一个符号。也就是说,如int a,a只是内存中某段地址在代码中可视化的一个符号,a本身作为符号并不占用空间,占用空间的是a所对应着的那个变量,通过a这个符号我们可以引用到该变量在内存中的位置。就好比是人和名字的关系,人作为一个真真正正的实体,是占用地球的物理空间的,是一个真实的存在,而这个人的名字只是代表了这个人的一个符号,本身并没有占用地球的物理空间,只是在他妈把他生下来的时候,把人这个实体和名字捆绑在了一起,因此,我们引用这个人的名字的时候,就等于我们找到了这个人。
  2. 对象:对象就是内存中一段有类型的区域。从这句话的描述上来看,对象至于变量,似乎更关注的是这对内存的类型,而不是名字。不能说变量就是对象,或者对象就是变量,严格来说,对象就是用来描述变量的。一点佐证是,C++中的临时变量的概念,如传参时生成的临时变量,该变量在内存中存在,但是是没有名字的,因此在代码中无法可视化,我们就无法通过名字去引用这个临时变量。
两者的区别与联系
从上面的两个描述中我们可以看到,两者都是用来描述一段内存的,但是是从不同的角度去描述:
  • 变量更强调的是变量名这个符号的含义,更强调名字与内存的联系,而不必关注这段内存是什么类型,有多少字节长度,只关注这个变量名a对应着某段内存。
  • 而对象的描述更强调的是内存的类型而不在乎名字,也就是说,从对象的角度去看内存,就需要清楚这段内存的字节长度等信息,而不关注这个对象在代码中是否有一个变量名来引用到这段内存。
举例:
int a;
如果我们说a是个变量,那我们关注的只是a这个名字对应着一块内存,当我们引用a时,我们能明确的知道我们引用的是a这个名字所对应的内存空间,而不是别的,也不去关注这个a的内存是个int啊char啊之类的什么类型。如果我们说a是个对象,则我们需要知道这个对象具体是什么类型,当我们引用并操作a的时候,就能根据类型信息做一些符合类型语义的操作,而不是暴力访问内存,任意解析内存中的数据

C/C++中对象和变量的区别!!!

本文转载与:http://blog.csdn.net/yby4769250/article/details/7377526 对象和变量这两个概念莫要搞乱,颈是颈,椎是椎,虽然两者都对应着...
  • msdnwolaile
  • msdnwolaile
  • 2016年07月31日 11:38
  • 964

C++new出来的和直接声明的对象变量有什么不同呢?

直接声明的为栈变量,由系统自动分配内存和释放,为局部变量,在退出本函数以后,自动释放。 new出来的需要是指针变量。new出来的变量存储在堆上,在退出本函数以后,如果,没有delete,将发生内存泄漏...
  • Rainloving
  • Rainloving
  • 2015年04月01日 19:46
  • 2301

C++创建对象的三种方式

C++中有三种创建对象的方法 #include using namespace std; class A { private: int n; public: A(int m):...
  • azhexg
  • azhexg
  • 2013年11月06日 12:56
  • 28235

C++中的类与对象

C++中的类与对象标签(空格分隔): c++ 作者:陈小默C中的类与对象 定义类 创建头文件 类和结构体 访问控制 作用域解析运算符 实现类成员 默认的内联方法 创建对象 开发环境:Visual S...
  • qq_32583189
  • qq_32583189
  • 2016年09月02日 11:23
  • 3524

C++中类与对象的讲解(通俗易懂)

概念 描述 类成员函数 类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。 类访问修饰符 类成员可以被定义为 public、private 或 pro...
  • songkai320
  • songkai320
  • 2016年07月14日 20:09
  • 13097

深入理解C++中的对象和对象引用

先来看一个入门级的程序:
  • stpeace
  • stpeace
  • 2014年11月07日 00:04
  • 5152

C++ 声明对象

在c++的类中,我如果要访问类中的成员变量或函数,有2种方法,第一种就是定义一个一个对象,如:Class A ...  A aa;aa.xxx();另外一种就是Class B ...B *aa = n...
  • youketudou
  • youketudou
  • 2011年07月21日 20:41
  • 5241

C++ 中的成员对象(学习笔记)

   【概念】成员对象:当一个类的成员是另一个类的对象时,这个对象就叫成员对象。概括的说,就是一个类的成员是一个对象,即成员对象。例如:#includeusing namespace std;clas...
  • rhzwan123
  • rhzwan123
  • 2008年02月19日 10:25
  • 7029

C++对象创建与释放

创建对象有以下四种形式: #include using namespace std; class A{ private: int i; public: A(){ cout...
  • iamgaowei
  • iamgaowei
  • 2014年04月03日 13:30
  • 4226

c++创建对象的两种方式

c++的代码真的好难看。不过这么多人用,也应该有它的道理。被逼看看c++,学学怎么创建对象啊,ORZfrom:http://blog.sina.com.cn/s/blog_586b6c050100dh...
  • naughty610
  • naughty610
  • 2011年06月25日 12:19
  • 15407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++变量和对象的区别联系
举报原因:
原因补充:

(最多只允许输入30个字)