新手,怎么定义类

新手求助,如何定义类
初学c++,感觉类的思想很好很强大。现在遇到一个问题,请大牛们指教。
问题描述:现在有100个人(小明,小红,大雄......),对于每个人,都有10种行为(吃饭,睡觉......)。
问题1:我是用人定义类,行为作为成员函数,还是用行为定义类,人作为成员函数好?(主要从但不限于以下方面:编写这些类的开发时间和难易程度,人和行为增减时对类的维护难易程度。)
问题2:上述的100和10如果数字变化了,如10个人,每人100种行为,情况又如何。有没有完备性的指导(即涵盖各种数字组合)。
如果大牛们能给出这种问题相关资料那就更好了,拜谢!
第一种方法:
class people
{
public:
  void eat(){省略......};
  void sleep(){省略......};
  ......
};
class xiaoming:public people;
省略重写某些行为的代码......

省略其它99个派生类代码......

在调用时
xiaoming realxiaoming;
realxiaoming.eat();

还是
class eat
{
  void xiaoming(){省略......};
  void xiaohong(){省略......};
  省略其它98个人......
}

省略其它9种行为类的代码......

调用时
eat realeat;
realeat.xiaoming();

------解决方案--------------------
多少个人不是重点,因为类的对象的个数可以随时变化
我认为行为也可以是类,人“类”有行为“类”的对象

------解决方案--------------------
用继承。
------解决方案--------------------
问题1:我是用人定义类,行为作为成员函数,还是用行为定义类,人作为成员函数好?(主要从但不限于以下方面:编写这些类的开发时间和难易程度,人和行为增减时对类的维护难易程度。):

按照面向对象的基本思想,在这种情况下,应该人定义为类,行为作为成员函数;这是对象行为基本定义决定的;
但是,项目的需求可能有所变化,那么上面的思路不是一定的;
如果行为作为类也行,那么它的成员函数就应该是
小明式的吃法
小明式的睡觉方式
。。。

那么人是不能作为行为的方法的(理论可行,但是可能99%的程序员都不理解),上面说的这样是可行的。


问题2:上述的100和10如果数字变化了,如10个人,每人100种行为,情况又如何。有没有完备性的指导(即涵盖各种数字组合)。

数字的变化不能让面向对象的基本思想变化;
不能仅仅根据数字的变化改变了一般程序员的设计思路,不能让代码很难懂,但是似乎完成了工作;
不管多少人,多少中行为,面向对象的思维都可以恰当地分离其中最核心的东西,封装成一个一个的类,
或者一层又一层的类,来解决最终的问题