C++复习关键点:泛型、内存管理与多态

需积分: 0 0 下载量 60 浏览量 更新于2024-08-04 收藏 44KB DOCX 举报
"C++编程语言复习笔记" 这篇复习记录涵盖了C++编程中的多个核心概念,主要包括函数原型、内存管理、初始化、内联函数、构造函数、常量成员函数、多态性、虚函数机制、友元、抽象类与纯虚函数、继承权限以及模板的使用。 1. **函数原型**:在C++中,函数原型是函数声明的一种形式,它告知编译器函数的返回类型和参数列表,但不包含函数体。函数原型中可以省略参数名称,但类型必须明确。 2. **泛型编程**:C++通过模板支持泛型编程,允许创建适用于多种数据类型的函数或类。如果函数或类需要处理两种或更多类型,可以定义泛型版本,通过参数化类型实现。 3. **内存管理**:C++程序中的内存分为三种主要区域:静态存储区(存储全局变量和静态变量)、栈(存储局部自动变量)和堆(动态内存分配,如`new`操作符使用)。 4. **初始化**:使用`new`关键字动态分配内存,并同时进行初始化,例如`int*pi = new int(6)`。数组初始化如`int*ar = new int[3]{1,2,3}`。 5. **内联函数**:内联函数用于优化代码,减少函数调用的开销,可以将函数体直接写在类中,或者仅声明原型并在实现时加上`inline`关键字。 6. **构造函数**:用于对象创建时初始化成员变量,文中列出了几种不同的构造函数调用方式,包括直接初始化、括号初始化和赋值初始化。 7. **常量成员函数**:在成员函数后面添加`const`关键字,表示该函数不会修改对象的成员值。 8. **多态性**:多态性是面向对象的核心特性之一,通过`virtual`关键字实现。非虚函数的调用依赖于引用或指针的类型,而虚函数则根据实际对象类型选择执行的方法。 9. **虚函数工作原理**:每个含有虚函数的对象都有一个虚函数表,虚函数的地址存储在这个表中,派生类会继承并可能修改这个表。 10. **友元**:友元不是类的成员,因此不能是虚函数。友元函数或友元类可以访问类的私有和保护成员。 11. **抽象类与纯虚函数**:含有纯虚函数(如`virtual void Test() = 0;`)的类是抽象类,不能实例化。纯虚函数声明了一个接口,但没有提供实现。 12. **继承权限**:C++的继承有公有、私有和保护三种,分别对应不同级别的访问控制。 13. **虚基类**:解决菱形继承带来的问题,确保只有一个基类的副本被继承。 14. **类模板**:允许创建通用的类,`template<typename T>`定义模板,`A<int> a;`实例化。默认模板参数如`template<typename T1, typename T2 = int>`。 15. **数组模板**:如`template<class T, int n>`定义,`Tar[n];`创建模板数组。 16. **模板嵌套与模板作为参数**:模板可以嵌套在类中,也可以作为函数参数,如`template<template<typename T> class Thing>`。 17. **模板别名**:使用`typedef`或`using`关键字为模板类型设置别名,简化代码。 18. **友元类**:友元类可以访问另一个类的私有和保护成员,实现两个类之间的紧密协作。 以上是C++编程中的一些基本概念,理解并熟练掌握这些知识点对于编写高效、可靠的C++代码至关重要。