首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

类的组合如何用

2012-12-15 
类的组合怎么用本帖最后由 lovec001 于 2010-05-14 22:14:43 编辑/*我正在做一个人手建模的程序,用OpenGL

类的组合怎么用
本帖最后由 lovec001 于 2010-05-14 22:14:43 编辑

/*
      我正在做一个人手建模的程序,用OpenGL做。
       这个程序主要是把人手Hand显示出来,并实现和数据手套的交互,
   即人带上数据手套手指随意运动,程序把手指的运动状态显示在屏幕上。
   人手Hand包括手掌Palm、手指Finger,手指包括Index、Middle、
   Ring、Little、Thumb。
   类Index、Middle、Ring、Little、Thumb是Finger的派生类。
   我想问的是这个组合类和继承怎么写?下面的写法对吗?
*/
class Hand
{
pubic:
    Palm;
    Finger;
    void display();
}
class Index:pubic Finger
{
    display();
}

class Middle:pubic Finger
{
    display();
}

class Ring:pubic Finger
{
    display();
}

class Little:pubic Finger
{
    display();
}


[最优解释]
你所说的类的组合就是指将一些相关的类放在一个类中,作为这个类的类成员变量
[其他解释]
引用:
引用:
说错了 是函数的隐藏 不是覆盖

什么叫函数的隐藏?


隐藏就是你调display的时候调的是子类的不是父类的(父类的display存在,只是被子类的屏蔽了)
用域访问符可以访问到父类的display

覆盖就是基类申明display为虚函数 那么会有个虚函数表 即使是父类指针指向派生类对象调的也是
派生类的display(若是隐藏当然就调的是父类的display了) 具体的你可以搜下 虚函数的用法
[其他解释]
你写的是继承
[其他解释]
引用:
你写的是继承

class Hand
{
pubic:
    Palm;
    Finger;
    void display();
}
这不是继承啊,这么写组合对不?
[其他解释]
这不是继承啊,这么写组合对不?
=======
我不知道什么叫组合,我也不记得C++中有类的组合的,我想你的意思是在一个类中定义另外的类作成员变量吧。如果是这个意思,你上面的写法也是对的。
[其他解释]
这个是函数的覆盖,继承要求父类和子类的同名函数必须是虚函数
[其他解释]
引用:
这不是继承啊,这么写组合对不?
=======
我不知道什么叫组合,我也不记得C++中有类的组合的,我想你的意思是在一个类中定义另外的类作成员变量吧。如果是这个意思,你上面的写法也是对的。

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;
  };

Finger和hand的关系就和这里Eye和Head的关系一样。
[其他解释]
说错了 是函数的隐藏 不是覆盖
[其他解释]
引用:
说错了 是函数的隐藏 不是覆盖

什么叫函数的隐藏?
[其他解释]
引用:
你所说的类的组合就是指将一些相关的类放在一个类中,作为这个类的类成员变量

一个类可以有其他若干个类作为其对象,是这个意思不?


[其他解释]
C++还不熟哈哈哈哈哈,爱莫能助爱莫能助
[其他解释]
我也来关注下~~~
[其他解释]

引用:
引用:
你所说的类的组合就是指将一些相关的类放在一个类中,作为这个类的类成员变量

一个类可以有其他若干个类作为其对象,是这个意思不?

class Hand
{
Palm m_palm;
Finger m_index,m_middle,m_ring,m_little,m_thumb;
}
/*
  这是我导师给我的思路,他的意思是不是m_index,m_middle,m_ring,m_little,m_thumb
  都是类Finger的对象?
  这种情况下,Palm和Finger是不是都作为Hand的类对象?
*/

[其他解释]
lz,好好去看c++书,从你的描述来看,你对c++的认识非常肤浅
[其他解释]
5楼正解。
[其他解释]
这个不是类的组合

热点排行