天天看点

c语言程序设计期末总结,c语言程序设计期末总结.docx

Last updated on the afternoon of January 3, 2021

Last updated on the afternoon of January 3, 2021

C语言程序设计期末总结

C++程序设计总结:

C与C++的区别:

引入类和对象,成为面向对象的程序设计语言…

一、类

二、引用三、函数的重载

四、流操作符

五、操作符重载

六、继承,以及虚函数

参考(C是一个结构化语言:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“设计这个概念已经被融入到C++之中”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。对语言本身而言,C是C++的子集,那么是什么样的一个子集?从上文可以看出,C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它为“C+”),相对于原来的C还有所加强,引入了重载、内联函数、异常处理等等玩艺儿,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。再提高一点,在C++中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。所以相对于C,C++包含了更丰富的“设计”的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习。)

*全面兼容C

它保持了C的简洁、高效和接近汇编语言等特点

对C的类型系统进行了改革和扩充

C++也支持面向过程的程序设计,不是一个纯正的面向对象的语言

支持面向对象的方法

2.友元函数

友元函数在类中用friend修饰的非成员函数,在其函数体中可以通过对象名访问类的

Private和protected成员。

作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。

访问对象中的成员必须通过对象名。

友元类:

若A类为B类的友元类,则A类的所有成员函数都是B类的友元函数,

都可以访问B类的私有和保护成员。

语法形式:

classB

{

···元关系是不能传递的2.友元关系是单向的3.友元关系是不被继承的。)

重载

哪些运算符不能重载:类属关系运算符“.”,成员指针运算符“.*”,作用域分辨符“::”,三目运算符“:”。

运算符重载的两种形式:重载为类的非静态成员函数(函数只有一个形参)和重载为非成员函数(函数的形参有两个)。

***运算符重载成员与非成员之间的差异:如何实现

差异:308至315页例8-1、8-2、8-3***

继承(实现代码重用)与派生

类的继承方式:公有继承、私有继承、保护继承。

继承:

公有继承(public):

基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问。

派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。

通过派生类的对象只能访问基类的public成员。

私有继承(private):

基类的public和protected成员都以private身份出现在派生类中,但基类的private成员不可直接访问。

派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。

通过派生类的对象不能直接访问基类中的任何成员

保护继承(protected):

基类的public和protected成员都以protected身份出现在派生类中,但基类的private成员不可直接访问。

派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。

通过派生类的对象不能直接访问基类中的任何成员

5.拷贝构造函数(无返回类型110~113)

构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。

在对象创建时由系统自动调用。

如果程序中未声明,则系统自动产生出一个隐含的参数列表为空的构造函数

允许为内联函数、重载函数、带默认形参值的函数

拷贝构造函数是