重载(),c+中的[]运算符+; 你如何在C++中重载()和[]运算符?用一些代码来证明。 这不会影响编程语言的完整性吗?
下面是一个示例:重载(),c+中的[]运算符+; 你如何在C++中重载()和[]运算符?用一些代码来证明。 这不会影响编程语言的完整性吗?,c++,oop,overloading,operator-keyword,C++,Oop,Overloading,Operator Keyword,下面是一个示例: class Test { const int size = 128; int data[size]; public: Test() { // allocate memory for data, etc. } int& operator[](int index) { return data[index]; } }; 它不会影响编程语言的完整性,因为只能对用户定义的类型执行运算符重载。在C++中,不可能为内置类型的操作符重载操作
class Test {
const int size = 128;
int data[size];
public:
Test() {
// allocate memory for data, etc.
}
int& operator[](int index) {
return data[index];
}
};
它不会影响编程语言的完整性,因为只能对用户定义的类型执行运算符重载。在C++中,不可能为内置类型的操作符重载操作符。不能使用数据指针(也包括数组)更改
[]
的行为。不能使用函数指针更改()
的行为。换句话说,C++的核心语言特性不能被重载。p> 用哪种语言?OOP和C++不是同义词。- 1,“你会怎么…举一些例子。”这个问题有很好的潜力(比如最后一个比特和“陷阱”),但这不是。第一部分你需要的是一个教程,但不是这样。@vivek-看看右边的相关问题。我相信你能找到一些。我强烈建议除了小型的个人代码实验外,不要在任何事情中重载“()”操作符。它很容易与构造函数语法混淆,使得使用它的代码很难维护/调试。@Darcy:这不是不礼貌,但你的错误再大不过了<代码>操作程序()//>代码是函数对象的基础(AKA函子),它与迭代器一起是与C++标准库本身交互的基础。在现代C++代码中,