-
培养正规的、大气的编程习惯
-
以良好的方式编写C++ classes
- ①class without pointer members,不含指针的,比如:复数;
- ②calss with pointer members,含指针的,比如:字符串。
-
学习classes之间的关系
——继承
——封装
——多态
Objected based(基于对象):面对的是单一class的设计;
Objected Oriented(面向对象):面对的是多重classes的设计,classes和classes之间的关系。
3.C++代码基本形式 引用自己写的头文件就用“”,引用标准库里的头文件就用<>。
#include4.头文件中的防卫式声明#include 等效于 等效于 #include #include
#ifndef _COMPLEX_ #define _COMPLEX_ … #endif
头文件引用顺序可以随意,重复引用时,第二次不进入主体。
5.头文件的布局#ifndef _COMPLEX_ #define _COMPLEX_ ⓪//前置声明 #include6.关于类class ostream; class complex; complex& _doalp(complex* this, const complex& r); ①//类-声明 class complex { }; ②//类-定义 complex::function… #endif
注意:
- 数据放在private里;
- 参数尽可能以reference传递;
- 返回值也尽量用reference传递;
- 类的body里的函数要加const的一定要加;
- 构造函数中的:那一行尽量用。
-
名称跟类名称相同
-
默认实参
-
没有返回类型,因为是来创建对象的,不带指针的类多半不写析构函数
-
初始化
complex(double r = 0, double i = 0) : re(r), im(i) {}
效果与下面代码等同,但效率更高,下面的代码相当于放弃初始化
complex(double r = 0; double i = 0) {re = r; im = i;}
- c++允许重载,同名的函数可以同时存在,对编译器不同名(输入不同);
- 函数重载常常发生在构造函数上;
- 目前的构造函数已经有默认值了,但仍可以在不冲突的前提下重载其他构造函数。
double real() const {return re;} double imag() const {return im;}
类里的成员函数,注意const的位置。
若使用者加了const,但ctors没加const,会报错。使用者就会:???
6.5 引用底部相当于指针,参数尽可能引用传递。pass by reference(to const)
6.6 friend可以自由取得friend的private成员 6.7 相同class的各个objects互为friendsps.选择的课程是侯捷老师的面向对象程序设计,是对课程内容的简单整理。欢迎一起打卡学习、讨论交流。本人是一枚新手村程序媛~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)