C++中的运算符(operator)是一种特殊的函数,它允许我们以简洁的方式执行常见的操作。运算符重载允许我们为自定义类型(如类或结构体)定义运算符的行为。这在很多情况下都非常有用,例如在实现数学运算、比较操作、资源管理等场景中。
以下是一些常见的C++运算符及其用途:
算术运算符:用于执行基本的数学运算,如加法、减法、乘法、除法等。
int a = 5, b = 3;
int sum = a + b; // 加法
int diff = a - b; // 减法
int product = a * b; // 乘法
double quotient = static_cast<double>(a) / b; // 除法
比较运算符:用于比较两个值的大小或相等性。
int a = 5, b = 3;
bool isEqual = (a == b); // 相等
bool isGreater = (a > b); // 大于
bool isLess = (a < b); // 小于
逻辑运算符:用于执行逻辑与、逻辑或和逻辑非操作。
bool a = true, b = false;
bool andResult = (a && b); // 逻辑与
bool orResult = (a || b); // 逻辑或
bool notResult = !(a); // 逻辑非
位运算符:用于执行二进制位操作,如按位与、按位或、按位异或等。
unsigned int a = 5, b = 3;
unsigned int andResult = a & b; // 按位与
unsigned int orResult = a | b; // 按位或
unsigned int xorResult = a ^ b; // 按位异或
赋值运算符:用于将一个值赋给另一个变量。
int a = 5, b = 3;
a = b; // 将b的值赋给a
一元运算符:用于执行单个操作数的操作,如取地址、解引用、递增、递减等。
int a = 5;
int* ptr = &a; // 取地址
int val = *ptr; // 解引用
++a; // 递增
--a; // 递减
通过重载这些运算符,我们可以为自定义类型提供合适的操作行为,使得这些类型在使用时更加直观和自然。