c++中类的对象和成员变量的区别

在学习MFC中对于程序中定义的对象和成员变量弄的不是很清楚,最好能说的具体一些。

C语言的变量可以分成两种级别:全局变量和局部变量
全局变量,在该变量之后定义的函数都可以访问
局部变量,只能在定义的函数中访问

而C++中多出了成员变量,成员变量通常是私有。
成员变量依附于对象存在,有了对象,成员变量才有内存
而成员变量的可以被本类的所有成员函数直接访问的。追问

那类可以定义成员变量吗?比如说CBitmap m_bitmap;这样算是定义的是对象还是变量啊?

追答

你这句定义语句如果写在类里面,没有写在类的成员函数里面就是 类的成员变量

如果写在 类的成员函数里面就是局部变量

如果写在 类的外面,也不在函数里面就是全局变量

追问

那我怎么觉得这个应该是作为一个对象呢?不知道你有没有看过孙鑫老师的书籍,在孙鑫老师讲解添加背景图那块在一个函数中定义CBitmap bitmap这个bitmap就是一个对象,这就是我不明白的地方,我明明觉得上面那个m_bitmap也是一个对象但是对象用得着用"m_"这种格式吗?

追答

对象作为另外一个类的成员,这个叫 组合

C++只允许一个类的成员是另外一个类的对象的。

很多人写程序为了区别成员变量和普通变量,在成员变量名前面以m_开头,m就是member
更加规范的是 全局变量以 g_开头,局部变量以 L_开头,我觉得你这个地方的概念很模糊。

追问

也就是说这个bitmap在CBitmap类的对象但是在另一个类中算作这个类的变量?是这样理解吗?类是不能直接定义变量的对吧!

追答

对的,但是类是可以直接定义变量的。
类主要两个作用,第一,产生对象,第二,继承派生

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-31
头文件是为了解决不同的cpp程序之间共享类定义,数据成员是类定义的一部分,所以要放在头文件中定义。

类的对象定义取决于你的使用范围,如果是全局变量供多个cpp文件共享,那么也要放在头文件中定义,如果是局部变量只要放在cpp文件中定义,如果是函数内变量就可以在函数中直接定义。
第2个回答  2013-10-24
对象包含了数据成员和成员函数。可以通过对象来访问数据成员和成员函数
相似回答