C学习心得小结

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C学习心得小结

Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

C++的学习心得

注意:因为我们在实验室大多是以项目为基础来学习C++,这样可能导致我们不能形成一个知识体系,所以建议大一同学脚踏实地的从头学习C++,即使时间不充裕的大二、大三同学在学习时也要做好笔记,以便下次遇到同样的错误能很快解决。

介于大多数人都要学C语言,所以本文就以C++与C语言的对比开始。

要区分C语言和C++的不同,首先要想明白,用砖头建造城市、用房屋建造城市与用两者共同建造城市的不同。

1.想要学C++必须掌握C语言的基础运用,这要从C++的产生说起。C++其实并不

是一个新的计算机语言,它只是在C语言的基础上预先编写好了很多函数。所以如果把C语言比为砖块,那么C++就是有砖块组成的一些小的建筑。所以学习C++必需先掌握C语言的基础运用。

2.C语言和C++哪个难

其实这个问题提的很不理想。试问:建起一个城市,是用砖头从头建起来简单,还是把一些已经建好,并且使我们需要的房子摆放好简单很明显C++本身的作用是为了方便使用C语言编程。

3.C语言和C++在语法上有什么不同

就我最近对C++学习时遇到的一些问题来看,C++在语法上基本与C语言一致。

但是由于房屋是别人建的,要使用它就要明白它们的建造过程(当然有些我们只要直接使用就行了,尤其是在前期)。而C++中封装的函数,也是C++的开发者已经建好的,所以我们要很好地使用它们就要明白它们的建造方式,至少要知道它们的使用语法。

4.C++语言与C语言的不同之处(准确的说应该是来看看C++开发者已经为我们做

好了什么)

注意:以下只是我在编写六维鼠标时遇到的,不全面,其余区别大家可以在以后的学习中自己摸索。

1)c语言后缀.c,c++后缀.cpp。

2)当函数定义放在函数调用之后时,C程序的函数原型即声明有时可省略,而C++的函数声明不能省略,而且还要求函数的所有参数在函数原型的圆括号中声明。一个不带参数的C函数原型必须使用void关键字,而C++函数原型可以使用空参数表。

3)C++中用new和delete运算符取代C的内存分配和释放函数malloc()和free()。

4)const常量类型:用来表示一个“常值变量”与#define的区别:

#define size 20 :对象是累的一个实例。类=数据结构+对数据进行操作的函数

面向对象的程序设计的基本特征:抽象、封装、继承和多态。

抽象:对一类对象进行概括,抽出他们共同的性质并加以描述的过程。

封装:将抽象得到的属性数据和行为代码有机的结合,形成一个具有类特征的统一体。

继承:一个新类可以从已有的类派生而来。

多态:不同对象对于同样的施加于其上的作用会有不同的反应。

1.类的定义与实现:

2.成员函数的定义形式与一般函数的定义形势基本相同,但如果在类的外部定义

成员函数,必须在成员函数名前加上类名和作用域限定符(::)。

3.一般将类的定义放在头文件(.h)中,类的实现放在源文件(*.cpp)中,二

main主函数可以放在另一个源文件中。在源文件中用#include编译预处理指令包含头文件。

4.对象:对象是类的一个实例,定义并实现了类,就可以利用类来声明对象,其

形式与普通变量的声明类似。

例如:以下用类Time声明了对象t1,today和对象的指针pt1:

Time t1,today; 或指向运算符“->”引用对象的公有成员,但注意不能引用对象的非公有成员。如:pt1->setTime()或()

5.构造函数和析构函数:在声明对象时,对象一般需要进行初始化,及对成员变

量进行初始化。在定义类时不能对成员变量进行初始化,因为不能确定类中定义的成员变量是属于哪一个对象。

构造函数:是一种特殊的成员函数,特殊性在于:它不需要用户程序调用,就能在创建对象时由系统自动调用。其作用就是在对象被创建时利用初始值去构建对象,使得在声明对象时就能自动地完成对象的初始化。

析构函数:是在对象的生存期即将结束时由系统自动调用的。析构函数的作用与构造函数相反,用来在对象被删除前做一些清理工作和数据保存工作。

构造函数的名称与类名相同,析构函数的名称是在类明前加符号“~”构成(表达取反的意思)。注意,构造函数和析构函数不能有任何返回类型,包括void类型;析构函数不能有参数。下例说明了构造函数和析构函数的定义方法及执行顺序

6.静态数据成员在储存类型上类似于一般的static静态变量,也具有全局性。

静态数据成员的属性也可以是公有、私有或保护的。对于公有静态数据成员,除了可以像一般数据库成员那样,直接通过对象或在成员函数中访问它们,还

可以利用类名加作用域限定符(::)来访问他们。对于私有和保护属性的静态数据库成员,只能在成员函数中访问它们。

由于静态数据成员不具体属于哪一个对象,因此不能构造函数或其他成员函数中对他们进行初始化,他们的初始化必须在类体外进行。

注意:静态成员函数只能访问类的静态成员(成员变量和成员函数),而不能访问非静态函数。解决这个问题的方法是将对象作为静态成员函数的参数,然后在静态成员函数中通过对象访问非静态成员。

7.this指针:在成员函数中访问数据成员或调用其他成员函数不需要指定对象,

因为他们都是通过一个隐藏的this指针确定当前的对象。

例如:void Time :: showTime()

{cout<

而实际上编译器会把this指针作为成员函数的参数,即上述函数定义等同于:void Time :: showTime(Time* this)

{ cout<hour’:’<< this->minute<<’:’<< this->second<

区别于非静态成员函数,静态成员函数没有this指针,因为静态成员函数属于整个类,它只有一个运动实例,不需要通过对象,通过类就可以调用它。

8.友元

定义:友元的另一种类型是友元类,一个类可以声明另一个类为其友元类,友元类的所有成员函数都可以访问声明其为友元类的所有成员。

相关文档
最新文档