内容
1类和对象入门
1.1 声明类
- 代码例子:成员访问限定符()【public放上面,private放下面】
class Student{
public:
void display()//成员函数
{
std::cout << num << endl;
std::cout << name << endl;
std::cout << sex << endl;
}
private:
int num;
char name[20];
char sex;//数据成员
};
1.2 定义对象
- [建议]先声明类,然后再定义
class Student std1;
或Student std1;
- 在声明类的同时就定义好
}std1;
- 不出现类名,直接定义对象
1.3 类和结构体异同
- 类默认是private,结构体默认是public,它俩其实都是数据类型。
- 重要的一点,在C++中的struct已经被扩展了,它已经与C的不同了。
- 继承方式不一样,类继承默认是private继承,而结构体默认是public继承。
- 李健书的{建议36}P94 110/357
1.4 类的成员函数(类函数)
- private函数的作用是支持其它函数,是类中其他成员的工具函数,类外用户不能用。
- 可以在类内定义,也可以在类内声明,类外实现(建议后者)。
- 类外实现时,不加类名,如
::display()
或display()
,就不是成员函数,而是全局函数。 - 类体的位置,必须在类外函数定义之前,否则编译会出错。
- inline函数:程序调用时并不真正执行函数的调用过程,而是把函数代码嵌入到程序的调用点,减少了时间开销。
- 类内定义的成员函数,可以省略inline,因为这些成员函数已被隐含地指定为内置函数。
- 成员函数的存储:
- 每个对象所占用的存储空间只是数据部分,不包括函数代码所占用的存储空间。
- C++用this指针,让不同的对象调用同样的成员函数。
- 存储形式,跟类内还是类外实现无关;与是否是inline函数无关。都是这样存储。
- 例子:有inline和没有inline的具体开销怎么确认。
- 例子:确认成员函数的存储大小。
1.5 对象中成员的引用
- 通过对象名和成员运算符来访问
- 通过指向对象的指针来访问
- 通过对象的引用来访问
1.6 练习与实践
- 找整型数组中元素的最大值,用类的方法,同时用多文件arraymax.h,arraymax.cpp,file1.cpp。
其它
- 第一版参考的教材是谭浩强《c++程序设计》,钱能的那本没找到。
- 在此基础上,会看《C++primer》来完善,主要觉得知识有点杂,然后在此知识框架的基础上周中会去一次图书馆进行一次主题阅读,尽可能的在这方面的知识点上完善下。
- 参考
- 谭浩强《c++程序设计》chap8
- Lippman《C++primer》