类的对象和实例是同一个东西
来源:百度文库 编辑:神马文学网 时间:2024/05/24 00:44:44
C++面向对象程序设计的重要概念
类与对象
这样可以达到信息隐藏的目的,即让类仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。我们不可以滥用类的封装功能,不要把它当成火锅,什么东西都往里扔。
类的设计是以数据为中心,还是以行为为中心?
主张“以数据为中心”的那一派人关注类的内部数据结构,他们习惯上将private 类型的数据写在前面,而将public 类型的函数写在后面,如表8.1(a)所示。
主张“以行为为中心”的那一派人关注类应该提供什么样的服务和接口,他们习惯上将public 类型的函数写在前面,而将private 类型的数据写在后面,如表8.1(b)所示。
很多C++教课书主张在设计类时“以数据为中心”。我坚持并且建议读者在设计类时“以行为为中心”,即首先考虑类应该提供什么样的函数。Microsoft 公司的COM 规范的核心是接口设计,COM 的接口就相当于类的公有函数[Rogerson 1999]。在程序设计方面,咱们不要怀疑Microsoft 公司的风格。
设计孤立的类是比较容易的,难的是正确设计基类及其派生类。因为有些程序员搞不清楚“继承”(Inheritance)、“组合”(Composition)、“多态”( Polymorphism)这些概念。
继承与组合
如果A 是基类,B 是A 的派生类,那么B 将继承A 的数据和函数。示例程序如下:
class A
{
public:
void Func1(void);
void Func2(void);
};
class B : public A
{
public:
void Func3(void);
void Func4(void);
};
// Example
main()
{
B b; // B的一个对象
b.Func1(); // B 从A 继承了函数Func1
b.Func2(); // B 从A 继承了函数Func2
b.Func3();
b.Func4();
}
这个简单的示例程序说明了一个事实:C++的“继承”特性可以提高程序的可复用性。正因为“继承”太有用、太容易用,才要防止乱用“继承”。我们要给“继承”立一些使用规则:
一、如果类A 和类B 毫不相关,不可以为了使B 的功能更多些而让B 继承A 的功能。
不要觉得“不吃白不吃”,让一个好端端的健壮青年无缘无故地吃人参补身体。
类的对象和实例是同一个东西
困惑:中外报导的是同一个北韩?
同一个扮演者的区别,白素贞和胡媚娘。。。。。。
JavaScript类的静态成员及其修改对象实例的数据
同一个网站的“浏览量”和“访问量”有什么区别?
15张同一个地方过去和现在的照片对比
同一个世界,同一个怎样的梦想?
VB.NET创建对象和销毁对象的问题
父母是早期教育的首要对象
父母是早期教育的首要对象
面向对象软件开发和过程: 代码是核心
爱着的人,和睡在身边的人,不是同一个
同一个世界,不一样的童年
同一个世界,不一样的童年
同一个世界,不一样的童年
中国工人已很难再说是属于同一个阶级
常用的匹配正则表达式和实例
JG和FK的配合使用实例
精选优秀的CSS技术和实例
易经和股票的实例解析
常用的匹配正则表达式和实例
莜麦和燕麦是一种东西吗?
是爷们就必看的东西
教练的对象是企业的根本——人