C++学习心得由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学习c语言心得体会”。
C++读书心得
C++是从C语言发展而来的,继承了C语言的特点(可以直接访问硬件)并增加了许多特性(封装、继承、多态),更适合大型软件的开发,比起JAVA来,C++更适合底层系统开发,并在网游3D开发、编译器、操作系统、办公软件等基础软件领域有很大的优势。
C++语言主要围着类来展开的,封装了属性和行为,更加利于数据的保护(public、private、protected)。同时我们也要区分结构体与类的区别,一般默认的时候,结构体中成员是public,而类中是private。本书很大的篇幅是介绍C++的基础语法,而且很详细。在类这个大的框架中介绍了继承与派生,继承有单继承与多继承和多派生,这样实现了代码的重用。在对象声明的时候,要调用构造函数,在其作用域结束时,就调用析构函数,使其释放内存空间(如果是用new动态申请的空间一定要用delete释放)。在派生类中对象声明时要先构造其基类,再是对象成员,然后是其本身,而析构则是相反的。在多派生中要注意抽象共同的特性,使用共同的基类,这是很好的编程风格。
在多态性中,有静态多态性,其中有函数重载,运算符重载。函数重载中可以用函数模板,这样更好的进
行泛型程序设计,而运算符重载要注意有些运算符不能重载,特别是运算符实现过程,这段代码中有些返回值是引用。讲到引用就不得不谈下它与指针的区别,引用只是一个变量的别名,不占用内存空间,而指针占用内存空间,本身是个无符号整型,在WIN32中占用与INT一样,占用4个字节,而它内存中存的是它指向变量的内存地址,如char *pc(p指向字符型变量);而char * *pc是个二级指针(p指向的是指针类型的变量)。关于这方面还有:const int *p(p指向的int变量是不变的),int const *p(p的指向不变,永远指向那个变量,但这个变量可以变)。const int i和int const i是一样的。void *p可以被其他的指针赋值,但不能反过来。当然const修饰成员函数时,要放在其后面,声明和定义是都要跟上哦。这里还要提一下指针在声明的时候,也要赋值,要不然就会成为野指针了。我们接着谈谈动态多态性,主要是虚函数,编译的时候不被绑定,只有在运行的时候才能决定其值。在类的继承关系中只要是基类中成员函数声明为基类,派生类中的同名函数也是基类(不管是不是被声明为基类),如果不是虚函数的话,这里就会出现同名覆盖原则。抽象类是虚函数被赋值零,只能做被基类,不能声明对象,有点像void一样,void a(这样编译器会报
错)。
在编译器像vc++6.0中有很多c++的类库,这样我们就可以不用再重写,其中MFC类库对windows平台下的窗口应用程序设计有很大的帮助,MFC中封装了大量的windows API函数,在我们进行Win32程序设计时,不用考虑大量的细节。当然了MFC不能跨平台,这样就有很大的限制。泛型程序设计,可以理解为类的类,把算法写的适合更多的数据类型,我们就可以用容器(数组就可以认为是个容器),适配器等配件组合。STL是C++标准类库,有点像c语言中的SDK库一样。
在学习C++中我们一定要注意变量的作用域及可见性,一般全局变量具有文件作用域,基本上是在头文件中申明或者main()函数之前,当然要注意extern的使用,这样可以在多文件中使用。函数之内的变量都是局部变量,在内存的栈区,函数结束是,也就释放了。Static修饰的变量是静态变量,具有文件作用域,在内存的全局数据区,并在赋值前,这个区的数据都是零,而且在程序运行之间,这个只永远都可以用。当然类的静态数据成员,一定要在类后定义并赋值,而静态成员函数不能改变数据成员,只能调用静态数据成员。友元函数减少了大量的回调,可以在编译的时候嵌在类中。
在我学习中,很多的知识点,看到后面就忘了前面,知识点我看了两遍了,中间也隔了蛮久的,现在写这篇文章的时候,都觉得有点生疏了。唯有多编程,深入理解对象才能更好的应用它的特性吧!
谢谢!
江西师大计算机学院
07级(3)班邵徽鸥
学好:0708060320
2009.12.09
关于VC的学习心得关于C++这门课,其实我自己在大一时就接触过,那时候接触的就是单纯的一些C++的基本语法规则,基本的编程规则,这学期老师又在课堂上将这些基础知识复习了一下,但是......
c++学习心得2008-03-12 16:24为初学者指路首先声明,我可不是什么高手,也就是刚脱贫。因为运气很好,买到了几本好书,在学习过程中几乎没走什么弯路,没费什么劲就入门了,现在一般的......
C++学习心得在计算机课程中,C++程序设计是计算机专业的一门必修基础课,该语言以其高效而又实用的特性:既可以进行过程化程序设计,又可进行面向对象的程序设计,是进行软件开发的直......
可以搜索“课本书名的学习”、“关于C++的学习方法” ㈠ 我是从c语言开始的,后来学习c++,现在使用java,刚开始接触面向对象的概念时跟你现在的情况一样,不过经过一段时间的实际......
C++的学习心得注意:因为我们在实验室大多是以项目为基础来学习C++,这样可能导致我们不能形成一个知识体系,所以建议大一同学脚踏实地的从头学习C++,即使时间不充裕的大二、大三......