- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C知识考试总结
#include iostream.h
class base{
public:
virtual void a(){cout”a() in base\n”;}
virtual void b(){cout”b() in base\n”;}
virtual void c(){cout”c() in base\n”;}
virtual void d(){cout”d() in base\n”;}
virtual void e(){cout”e() in base\n”;}
virtual void f(){cout”f() in base\n”;}
};
class A:public base{
public:
virtual void a(){cout”a() in A\n”;}
virtual void b(){cout”b() in A\n”;}
virtual void f(){cout”f() in A\n”;}
};
class B:public base{
public:
virtual void a(){cout”a() in B\n”;}
virtual void b(){cout”b() in B\n”;}
virtual void c(){cout”c() in B\n”;}
};
class C:public A,public B{
public:
virtual void a(){cout”a() in C\n”;}
virtual void d(){cout”d() in C\n”;}
};
void main()
{
C cc;
A *Pa=cc;
Pa-a();
Pa-b();
Pa-c();
Pa-d();
Pa-e();
Pa-f();
}
程序的执行结果是:
a( ) in C
b( ) in A
c( ) in base
d( ) in C
e( ) in base
f( ) in A
抽象是面向对象方法的核心。
面向对象系统最突出的特性就是封装性、继承性和多态性。
1.封装性 封装是指将一个数据和与这个数据有关的操作集合放在一起形成一个能动的实体—对象有一个清楚的边界包装,对象,类的所有私有数据内部程序(成员函数)的细节都被固定在这个边界内具有一个接口,这个接口描述了对象对外界的消息、方法和响应。对象受封壳保护,外界不能直接修改使用本对象所拥有的数据和代码。封装的两个目标:1. 数据和行为的包装;2. 信息隐藏。
协议是一个对象对外服务的说明,它声明对象可以为外界做什么。即对象所能接受的所有公有消息的集合。
2..继承性 继承是指一个类从另一个或另一些类获得了一些基本性质,并在此基础上增加自身的一些特殊性质。继承是建立在类的“泛化”关系(一般—特殊关系)基础上的,也即特殊类继承了一般类的性质。在继承现有类的性质的基础上定义的新类称为派生类。
注意: 能否被派生类的成员函数访问,是private成员和protected成员的唯一区别。
要进行类间继承它们之间应有:
类间具有共享特征(包括数据和程序共享)
类间具有细微的差别或有新增部分(非共享的数据和代码)
类间具有层次结构
继承分类 从继承源上划分 从继承内容上划分
类的层次 类的成员 数据成员 函数成员
单继承和多继承 基类 派生类
继承可以对数据(结构特性)的继承又具有操作(行为)的继承,C++中类的定义分三段
私有段 private
保护段 protected
公有段 pablic
派生类可以访问公有和保护段的成员,无权访问私有段的成员。
3.多态性
多态性指接收同一个消息名后,对象可以采用多种不同的行为(态度)
重载概念:即可以有同名函数。同一运算符可以定义成不同的操作。
虚函数概念:指类继承和派生中可以用相同函数名,但不同的实现版本。
抽象类的概念:可以定义一种类,这种类中有虚函数,因此不能有具体对象的类,称抽象类。
类的声明即类的定义: class 类名 //class是声明类的关键字
{
private:
私有成员函数和数据成员的说明
public:
公有成员函数和数据成员的说明
};
通常采用下面的形式定义成员函数:
类型标识符 类名::成员函数名(形参表)
{
函数体
}
成员函数可以在定义类时同时说明和定义, 在类定义内只有成员函数的声明,而在外面定义完整的成员函数,并且前面加 inline ,这样的成员函数叫内联成员函数, 空类 class 类名 { };
文档评论(0)