"C++ Primer 学习资料"
在C++编程语言中,类是核心概念之一,用于封装数据和操作这些数据的函数。类的声明和定义是构建面向对象程序的基础。
1. 引用自定义类类型
类类型有两种常见的引用方式:
- 声明一个对象,如 `classFirstobj1;` 这种方式只是声明了类的存在,但并未创建对象。
- 直接创建对象,如 `Firstobj1;` 这会实例化一个对象。
2. 数据成员
- 数据成员是类中存储信息的变量,例如 `Class test{ Short a, b; }`。
- 非静态数据成员不能在类内初始化,它们通常在类的构造函数中初始化。
- 静态数据成员是类级别的,对所有对象共享,可以在类内初始化。
3. 成员函数
- 成员函数是操作类数据成员的函数,它们在类中声明,但在类外部定义。
- 点运算符(.)或箭头运算符(->)用于调用成员函数,例如 `obj.function()` 或 `ptr->function()`。
- 重载函数是具有相同名称但参数列表不同的函数,成员函数可以重载。
- 受保护成员(protected)对派生类可见,对其他代码如同私有(private)。
4. 访问修饰符
- 类可以有public、protected和private区域。默认情况下,类体后的区域是private。
- protected成员对派生类公开,对其他代码隐藏。
- 如果没有明确的访问修饰符,成员被视为private。
5. 友元
- 友元函数或友元类可以访问类的私有和受保护成员。
- 友元可以是命名空间内的函数,或是另一个类的成员函数。
- 友元类的所有成员函数都成为友元,可以访问友元化的类的非公有成员。
6. 类的声明和定义
- 类的定义包含其所有成员和访问修饰符,定义后类的大小是已知的。
- 声明类但未定义时,不能创建对象,因为对象的大小未知。
- 但可以声明指向类的指针和引用,它们的大小是固定的。
- 在类完全定义之前,不能对指针或引用解引用,也不能使用它们访问类成员。
- 类体内不能有自身类型的对象,但可以有指针或引用。
7. 类对象
- 定义类的对象时才会分配存储空间,例如 `Screen myScreen;`。
- 每个类对象都有独立的数据成员副本。
- 类对象可以通过初始化或赋值操作互相复制,这是通过拷贝构造函数或赋值运算符实现的。
这些基本概念构成了C++中的类系统,是理解和编写面向对象代码的关键。深入学习这些概念,包括构造函数、析构函数、拷贝控制、继承和多态,对于成为一名熟练的C++程序员至关重要。