c中不能重载的运算符有哪些
林玟书 2023-07-08编程经验
不能重载的运算符C++中有一些运算符是不能重载的,即不能通过自定义函数重载这些运算符。这些不能重载的运算符包括:sizeof运算符sizeof运算符用来获得某个数据类型的大小
不能重载的运算符
C++中有一些运算符是不能重载的,即不能通过自定义函数重载这些运算符。这些不能重载的运算符包括:
sizeof运算符
sizeof运算符用来获得某个数据类型的大小,包括数据类型占用的字节数或者某个对象实例占用的字节数。在C++中,sizeof运算符不能被重载。
int main() { int num = 10; double db = 0.0; std::cout << "Size of num is " << sizeof(num) << std::endl; std::cout << "Size of db is " << sizeof(db) << std::endl; return 0; }
成员访问运算符
成员访问运算符用于在类成员函数中访问该类对象的成员变量或成员函数。C++中的成员访问运算符"."和"->"都不能被重载。
class Person { private: int age; public: void setAge(int age) { this->age = age; } int getAge() { return this->age; } }; int main() { Person p1; p1.setAge(18); std::cout << "Age of p1 is " << p1.getAge() << std::endl; return 0; }
条件运算符
条件运算符也叫三元运算符,它用于在两个值中选择一个值作为操作结果。条件运算符不能被重载。
int main() { int num1 = 10; int num2 = 20; int maxNum = num1 > num2 ? num1 : num2; std::cout << "The max num is " << maxNum << std::endl; return 0; }
作用域运算符
作用域运算符用于在全局作用域和类作用域之间进行选择。C++中的作用域运算符"::"不能被重载。
int num = 100; int main() { int num = 200; std::cout << "The global num is " << ::num << std::endl; std::cout << "The local num is " << num << std::endl; return 0; }
总结
本文介绍了C++中不能被重载的运算符,包括sizeof运算符、成员访问运算符、条件运算符和作用域运算符。不能重载这些运算符是由C++语言规范定义的,我们无法改变这种情况。但是我们可以通过使用其他方法来实现某些特殊的运算符行为。
很赞哦! ()