博览网C++学习第一周

       概述:

       C++语言非常的复杂,有很多种编程范式:面向对象范式,泛型编程范式,元编程范式等。之所以复杂是因为C++语言所描述的真是世界是复杂的。C++语言经历了一系列的发展,总的原则是要让编程方便而效率又不会损失太多。

       本系列课程主要学习面向对象编程,也就是使用C++语言中的面向对象范式。

       本周主要学习C++中最简单的类的实现:不带指针的类的实现。这个其实和面向对象没什么关系,主要还是强调封装,把数据和操作数据的函数放在一起,这个称为“基于对象”的设计,而且还是“基于对象”设计中最简单的带指针的类的实现。

       其实,带不带指针不是本质,本质是类的所有成员都具有合适的内存管理行为(因为都是值类型,class默认为值类型生成合适的内存管理代码)。

       细节:

1. 头文件由C到C++的变化如 #include <stdio.h>  ---> #include <cstdio>

2. 头文件中的防卫式声明---同C语言

3. inline函数可实现在类的定义中(无需指定inline),或在.h文件中实现在类外(必须指定inline).inline只是一种请求,复杂的函数的这种请求基本不可能成功。

4. class的访问权限:private,protected,public

5. 函数的参数能用引用就必须用引用,能加const就必须加const

6. 友元函数和友元类可以直接访问其朋友类的private域

7. this指针即指向调用函数对象的指针,其实和C无本质区别,如C++中Obj.some_func(param)被编译器修改为C中对应的的 some_func( &pObj, param );其中&pObj就是this指针的实参

8. 三类非常重要的函数:

    a) 构造函数(对象如何产生)

    b) 析构函数(对象如何消亡)

    c) 复制控制类函数( 拷贝构造函数和operator=() )描述对象如何被复制

    本周的类不涉及资源管理,并是值类型,所以只需要实现构造函数,其余两类函数,C++语言默认生成的就足够好了。

9. 运算符重载

    这个要谨慎使用,有无数的坑等着你,最好能不使用,而直接使用普通的函数。不过,对于一些类,人们常常用运算符来操作它们,也可以使用一下运算符重载,小心,小心一定要小心!

 

posted @ 2017-10-09 15:27  想吃天鹅肉的呱呱  阅读(214)  评论(1编辑  收藏  举报