新手,怎么定义类
新手求助,如何定义类
初学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种行为,情况又如何。有没有完备性的指导(即涵盖各种数字组合)。
数字的变化不能让面向对象的基本思想变化;
不能仅仅根据数字的变化改变了一般程序员的设计思路,不能让代码很难懂,但是似乎完成了工作;
不管多少人,多少中行为,面向对象的思维都可以恰当地分离其中最核心的东西,封装成一个一个的类,
或者一层又一层的类,来解决最终的问题
初学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种行为,情况又如何。有没有完备性的指导(即涵盖各种数字组合)。
数字的变化不能让面向对象的基本思想变化;
不能仅仅根据数字的变化改变了一般程序员的设计思路,不能让代码很难懂,但是似乎完成了工作;
不管多少人,多少中行为,面向对象的思维都可以恰当地分离其中最核心的东西,封装成一个一个的类,
或者一层又一层的类,来解决最终的问题