C++ 编程基础与核心特性笔记
1. 概述
C++ 包含两大核心编程思想:
- 面向对象 (OOP)
- 泛型编程 (Generic Programming)
2. C++ 初识
- 兼容性:C++ 是 C 语言的超集,C 语言程序可在 C++ 环境下执行。
- 标准库:引入头文件
#include <iostream>。 - 命名空间:使用
using namespace std;。 - 三大特性:封装、继承、多态。
系统梳理了 C++ 编程的核心知识体系,涵盖面向对象与泛型编程两大思想。内容涉及基础语法(命名空间、类型转换、const、引用)、类与对象(构造析构、封装、深拷贝)、内存管理(new/delete、智能指针)、高级特性(静态成员、友元、运算符重载)。此外还详细讲解了继承多态机制、模板编程、异常处理及输入输出流的使用,旨在帮助开发者掌握 C++ 语言的关键特性和最佳实践。
C++ 包含两大核心编程思想:
#include <iostream>。using namespace std;。namespace mmath = my_project::utils::math;)。using king::k;:导出变量。using namespace std;:导出整个空间。int (&pArr)[10] = arr;const int &ref = 10;。class Circle {
int m_R;
public:
int calculateZC() { return 2 * 3.14 * m_R; }
void setR(int r) { m_R = r; }
};
inline。const 引用可作为重载条件。~,不可重载,自动调用一次。Person p1; (推荐)Person p3 = Person(20);Person p4 = 22; (可用 explicit 禁止)class Person {
public:
int age;
string name;
Person(int a, string n) : age(a), name(n) {}
};
new/delete 是运算符,会调用构造/析构函数。malloc/free 是库函数,不调用构造/析构。new 返回对象指针,无需强转。delete[]。this 指向 const 对象。this 可调用成员函数。void show() const) 不能修改普通成员。mutable 关键字允许在常函数中修改特定成员。friend void goodGay(Building* b);friend class GoodGay;friend void GoodGay::visit();operator+,成员或全局函数均可。operator<<,通常用全局函数配合友元。operator++(),后置 operator++(int)。operator=,注意深拷贝处理堆区内存。operator[],返回引用以便修改。operator==, operator!=。operator(),仿函数灵活。&& 和 ||。class Sub : public Base {}Base::func() 访问父类成员。class Sub : public A, public B {}virtual public 解决。virtual void func() = 0;。template<class T>
void MySwap(T& a, T& b) { T temp = a; a = b; b = temp; }
MySwap<char>(c1, c2);template<class NameType, class AgeType>
class Person {
public:
Person(NameType name, AgeType age) { mName = name; mAge = age; }
private:
NameType mName;
AgeType mAge;
};
try { ... } catch (...) { ... }std::exception,重写 what() 函数。cout 流对应缓冲区,endl 刷新缓冲区并换行,\n 仅换行。<< 和 >> 可重载。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online