double real, imag;
Complex operator+(const Complex& other) {
return Complex{real + other.real, imag + other.imag};
Python 示例:
class Complex:
def __init__(self, real, imag):
self.real = real
self.imag = imag
def __add__(self, other):
return Complex(self.real + other.real, self.imag + other.imag)
参考: C++ 运算符重载
模板元编程
C++ 支持模板用于泛型编程,允许类型安全的代码重用。Python 缺乏直接等价物,依赖鸭子类型。
C++ 示例:
template<typename T>
T add(T a, T b) {
return a + b;
Python 示例:
def add(a, b):
return a + b # 无类型约束
参考: C++ 模板
C++ 支持多重继承,允许一个类从多个基类继承。Python 也支持多重继承,但使用不同的方法解析顺序。
C++ 示例:
class A {};
class B {};
class C : public A, public B {};
Python 示例:
class A: pass
class B: pass
class C(A, B): pass # 使用 MRO(方法解析顺序)
参考: C++ 继承
常量限定符
C++ 使用 const 定义不可变变量,而 Python 没有直接等价物来表示不可变性。
C++ 示例:
const int x = 10;
Python 示例:
x = 10 # 无 const 关键字
参考: C++ 常量限定符
指针和引用
C++ 使用指针和引用进行内存访问,而 Python 抽象了这些概念。
C++ 示例:
int& ref = x; // 对 x 的引用
Python 示例:
ref = x # 无指针或引用
参考: C++ 指针和引用
预处理指令
C++ 使用预处理指令进行宏和条件编译,而 Python 没有预处理器。
C++ 示例:
##define PI 3.14
Python 示例:
PI = 3.14 # 无预处理器
参考: C++ 预处理指令
C++ 和 Python 都支持异常处理,但语法和机制不同。
C++ 示例:
try {
// 可能抛出异常的代码
} catch (std::exception& e) {
// 处理异常
Python 示例:
# 可能抛出异常的代码
except Exception as e:
# 处理异常
参考: C++ 异常处理
C++ 允许根据参数类型进行函数重载,而 Python 不直接支持此功能。
C++ 示例:
void func(int x);
void func(double x);
Python 示例:
def func(x):
# 无重载,在函数内处理类型
参考: C++ 函数重载
静态与动态类型
C++ 是静态类型的,需要类型声明,而 Python 是动态类型的,允许变量类型在运行时改变。
C++ 示例:
int x = 5;
Python 示例:
x = 5 # 动态类型
参考: C++ 类型系统