C++ 期末核心复习考点
一、C++基础语法(选择、填空)
1. 命名空间
- using namespace std; ,std 包含 cin、cout、endl
- 不用整体展开: std::cout
2. 输入输出
cpp
int a;
cin >> a;
cout << a << endl;
- endl 会刷新缓冲区,'\n'仅换行。
3. 常量与数据类型
- 基础类型:int、double、char、bool、long
- 常量: const int N=10; ,值不能修改
- 字符常量单引号,字符串双引号,字符串末尾自带'\0'
4. 引用 &
- 格式: int &b = a; ,b就是a别名,共用同一块内存,不能重新绑定。
- 函数传引用,可以直接修改实参,不需要指针。
区别:普通传值复制副本,引用直接操作原变量。
5. 函数基础
6. 函数声明要写在调用之前,或者提前写函数原型。
7. 默认参数:默认值只能放在声明,从右往左设置。
cpp
void fun(int x, int y=20);
3. 函数重载:函数名相同,形参个数、类型、顺序不同,返回值不能区分重载。
二、指针(必考)
1. 基础定义
cpp
int a=10;
int *p=&a;
*p 等价于a
2. 数组指针
- 数组名是首元素地址
- int arr[5]; int *p=arr;
3. 指针与数组做函数形参
cpp
void test(int arr[],int n)
void test(int *arr,int n)
两种写法等价。
4. 空指针: int *p=nullptr; ,不能解引用。
5. 字符指针:字符串本质是首地址。
易错点:数组不能直接整体赋值;指针变量存的是地址。
三、结构体、结构体指针
cpp
struct Student{
int id;
string name;
};
Student s;
Student *p=&s;
p‑>id = 1001;
. 用于实体, -> 用于指针。
四、面向对象(大题核心:类和对象)
1. 访问权限
- public:公共,外部直接访问
- private:私有,只能类内访问,默认权限
- protected:保护,继承里使用
2. 类的构成
cpp
class Person{
private:
int age;
public:
void setAge(int a){age=a;}
int getAge(){return age;}
};
私有成员只能通过成员函数访问。
3. 构造函数与析构函数
1. 构造函数:和类同名,无返回值,创建对象自动调用,用于初始化。
2. 无参构造、有参构造、拷贝构造
cpp
Person(const Person &p)
3. 析构函数: ~Person() ,无参无返回,对象销毁自动调用,释放资源。
4. 浅拷贝:直接复制地址,会重复释放内存;深拷贝重新开辟空间。
4. this指针
- 指向当前对象,区分成员变量和局部变量。
cpp
this‑>age = age;
5. 静态成员 static
- 静态成员属于整个类,不属于单个对象。
- 静态成员函数只能访问静态成员,没有this指针。
五、继承(高频考点)
1. 三种继承方式:public、protected、private继承
- public继承:父类public→子类public,父类private依旧不可访问
2. 父类私有成员,无论哪种继承,子类都无法直接访问。
3. 子类构造顺序:先父类构造,再子类构造;析构相反。
4. 同名成员:子类成员会隐藏父类,访问父类需要加作用域。
六、多态(期末难点)
1. 虚函数关键字 virtual
cpp
virtual void show(){}
2. 实现多态条件:
- 父类有虚函数
- 子类重写虚函数
- 父类指针或引用指向子类对象
3. 纯虚函数: virtual void func()=0; ,含有纯虚函数的类叫抽象类,不能实例化对象。
七、运算符重载
1. 成员函数重载、全局函数重载
2. +、-、==、<< ,流输出运算符只能用全局函数重载。
cpp
ostream& operator<<(ostream &cout,Person p)
八、string字符串类
cpp
#include<string>
string s1="hello";
s1.size();//长度
s1.append("123");//追加
s1.substr(起始下标,长度);
九、内存分配 new / delete(必考)
- 堆区手动开辟,栈区自动释放
cpp
int *p = new int(10);
delete p;
int *arr=new int[10];
delete[] arr;
new出来的内存,必须手动delete释放。
十、文件读写(选择简答)
cpp
#include<fstream>
ifstream 读文件
ofstream 写文件
十一、常考大题题型
1. 定义一个类,私有数据,提供get/set函数,主函数测试。
2. 构造函数、拷贝构造、析构函数代码书写。
3. 继承,子类扩充属性,调用成员。
4. 虚函数实现多态。
5. new动态数组、结构体数组。
6. 函数传值、传址、传引用三种方式区分。
十二、易错知识点总结
1. 引用一经初始化,不能更换指向。
2. 重载只看参数,返回值不参与区分。
3. 父类私有成员永远无法被子类直接访问。
4. 抽象类不能创建对象。
5. 静态成员不属于对象。
6. 数组名不是指针常量,不能被二次赋值。
更多推荐
所有评论(0)