c++

156 阅读5分钟

C++ 笔试整理

面向对象程序设计的特点:抽象,封装,继承,多态

1. 以面向对象程序为例总结c++模块理论

1)模块:独立的功能单元,万物皆可模块,任何交流都可称为模块交流。模块是内部元素结构加上对外接口。

2)功能模块:能模块化是将程序划分成若干个功能模块,每个功能模块完成了一个子功能,再把这些功能模块总起来组成一个整体。以满足所要求的整个系统的功能。结构体加功能。

3)模块封装性:局部变量外部看不到,块作用域,函数作用域(功能化,模块化),封装的作用就是保护或防止代码被破坏,将数据或函数集合在类中。

4)模块对外接口:封装性不允许外部破坏模块内的数据安全,操作内部数据要用接口。

5)模块的分解粒度:持续优化。

6)智能体:对外界刺激做出反应

7)模块化设计:首先进行模块分解,模块分解就是将一个复杂的问题分解成几个功能相对独立的模块再将各模块根据具体情况分解成更小的模块,模块化的目的就是为了降低程序复杂度,使程序设计好和维护等操作简单化,改变某个子功能只需改变相应的模块即可,其中函数是实现模块化程序的程序设计的主要手段。

8)模块化的好处:避免命名冲突,灵活架构,焦点分离,方便模块间组合,分解,多人协作互不干扰,高复用性和可维护性

 

构造函数:初始化对象的数据成员,构造函数具有与类相同的名称,有参构造函数和无参构造函数,构造函数不可被继承。

 

析构函数:它会在每次删除所创建的对象时执行,析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。,析构函数不可以被继承。

 

拷贝构造函数(复制构造函数):只有一个参数,注意,默认构造函数(即无参构造函数)不一定存在,但是复制构造函数总是会存在,复制构造函数的参数可以是 const 引用,例如:

 

友元函数:

类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数,友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关键字 friend****

 

 

继承:

1)共有继承:只有私有成员不可访问。

   派生类对象只能访问基类中的共有成员,派生类成员函数可以访问基类中的共有成员和保护成员,在派生类外部可以调用基类共有成员函数,但基类保护成员函数不可以被访问。

2)保护继承:只有私有成员不可访问,共有成员和保护成员都变成了保护成员。保护成员不可见但是可以被继承。保护成员只有在派生类内部可直接访问。

3)私有继承:共有成员以及保护成员都变成私有成员,私有成员不可访问,基类成员只能由直接派生类的访问,而无法继续继承。

继承顺序:先继承的先执行

由一个类生成对象只能访问类的共有成员,而一个类的成员函数可以访问类中所有成员,通过派生类调用类的同名函数时,需要加上基类名。

 

派生类构造函数:在创建派生类对象时,系统会自动调用基类的默认构造函数,即先调用基类中的函数后调用派生类中的函数。

派生类析构函数:先调用派生类中的析构函数,再调用对象成员中的析构函数,最后调用基类的析构函数

 

 

 

 

 

 

 

多态:

是指发出同样的消息被不同类型的对象接受时导致的完全不同的行为。

多态指子类可以代替父类,调用子类的方法实现,只要两个类中有相同的方法就可以实现

多态的实现:

函数重载:有相同的名字,使用不同类型,不同数目的参数或不同的返回值即可。简称一名多用。

运算符重载:一是重载为类的成员函数,二是重载为类的友元函数。

虚函数  :函数名前加上关键字virual即可,虚函数主要用于解决派生类中继承的基类函数与派生类中自有函数的同名问题

类模板:关键字template ,将类型作为参数传过来。

 

 

 

 

模块累加:

元素构成小模块,小模块构成大模块,析构的过程正好相反,大模块析构后小模块被暴露,小模块再被析构,要注意:先构造的后析构。

 

blog.csdn.net/weixin_4567…

 

架构:

一个系统如果只使用一次,那么不需要架构,一个系统,它构成复杂,需要多个子系统协同,一个系统有许多功能相似的模块,模块内部功能重复度很高,一个系统很庞大,需要多个人一块完成,需要保证效率和稳定性,架构即需要分层思维,分治思维以及演化思维,才能解决以上系统遇到的问题,动态优化。