关于C++中类的概念

勇敢的搬砖人 2010-05-13 09:24:25
class Head
  {
  public:
   void Look(void) { m_eye.Look(); }
   void Smell(void) { m_nose.Smell(); }
   void Eat(void) { m_mouth.Eat(); }
   void Listen(void) { m_ear.Listen(); }
  private:
   Eye m_eye;
   Nose m_nose;
   Mouth m_mouth;
   Ear m_ear;
  };
其中的Eye是Head的一个派生类吗?如果是的话,m_eye是类Eye的对象吗?它有什么作用?
我有点蒙了,初学者.
...全文
2291 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenshuirunxin 2010-05-17
  • 打赏
  • 举报
回复
把对象当作数据成员嘛。
GoForSky 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 lovec001 的回复:]
C/C++ code
class Head
  {
  public:
   void Look(void) { m_eye.Look(); }
   void Smell(void) { m_nose.Smell(); }
   void Eat(void) { m_mouth.Eat(); }
   void Listen(void) { m_ear.Listen(); }
 ……
[/Quote]

1:其中的Eye是Head的一个派生类吗?
不是。
Head has a Eye
Head is not a Eye

2:如果是的话,m_eye是类Eye的对象吗?它有什么作用?
m_eye是类Eye的对象吗?是
w908065729 2010-05-13
  • 打赏
  • 举报
回复
在C++中类跟结构体差不多,只不过struct里头如果不声明数据是共有类型,而在类里头是私有的如果你同时申明好像差不多,既然是结构体就是一种新的数据类型,就比如说定义了另一种数据类型是eye,跟int整型意思是一样的
chaoliu1024 2010-05-13
  • 打赏
  • 举报
回复
Eye当然是一个类啦,m_eye是Eye的一个对象。这个对象是Head的私有成员。不多这个m_Eye的类型是Eye。在其他的一些面向对象的语言中,int都是一个类的。
面向对象里面全是“类”。一定要有这个概念,很重要的!
chaoliu1024 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 thefirstz 的回复:]
楼主可以google下 is-a 和has-a ,看下类之间的基本关系
[/Quote]学习了
勇敢的搬砖人 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lirg8405 的回复:]
不是派生类,相当于声明一个变量;
m_eye就是声明的变量,使得在Head里面可以使用Eye的公有属性
[/Quote]
谢谢!!
lirg8405 2010-05-13
  • 打赏
  • 举报
回复
不是派生类,相当于声明一个变量;
m_eye就是声明的变量,使得在Head里面可以使用Eye的公有属性
praylgjywjy 2010-05-13
  • 打赏
  • 举报
回复
高手请进http://topic.csdn.net/u/20100513/20/70b81a30-31ca-43d8-91f0-b1de048bb1c6.html
勇敢的搬砖人 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 simonyeung 的回复:]
Eye是Head的私有成员对象
一个头Head对象就包括:眼睛,鼻子,嘴巴,耳朵这几个对象

与Head对象是组合关系
[/Quote]

那Eye也是一个类喽?m_eye是什么啊?要实现Eye的一些功能是在Class Eye中编函数实现,还是这些功能包含在m_eye中?
SimonYeung 2010-05-13
  • 打赏
  • 举报
回复
Eye是Head的私有成员对象
一个头Head对象就包括:眼睛,鼻子,嘴巴,耳朵这几个对象

与Head对象是组合关系
liutengfeigo 2010-05-13
  • 打赏
  • 举报
回复
VC++的?
buyizaixiang 2010-05-13
  • 打赏
  • 举报
回复
这个可以理解为 head类里有一个属性 m_eye 这个属性是eye类型的 从这个片段来看 eye与head
没什么联系
两个独立的类
dreams_1989 2010-05-13
  • 打赏
  • 举报
回复
我认为其实就是和int a一样的用法啊,只是eye是head中的类.
昵称很不好取 2010-05-13
  • 打赏
  • 举报
回复
楼主可以google下 is-a 和has-a ,看下类之间的基本关系
昵称很不好取 2010-05-13
  • 打赏
  • 举报
回复
Eye是Head的成员,和普通的int m_eye一样使用

64,648

社区成员

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

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