How to call parent class member function from an overloaded function?
本问题已经有最佳答案,请猛点这里访问。
我创建了一个新类,它是从字符串类公开继承的。我希望重载派生类中的
在Java中,有EDOCX1的2个关键字。
我的代码如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include<iostream> #include<string> using namespace std; class mystring:public string { bool operator<(const mystring ms) { //some stmt; //some stmt; //call the overloaded <( less than )operator in the string class and return the value } }; |
例如。:
1 2 3 | const std::string& left = *this; const std::string& right = ms; return left < right; |
如果您意识到它只是一个具有有趣名称的函数,那么调用基类运算符很容易:
1 2 3 4 5 6 | bool operator<(const mystring ms) { //some stmt; //some stmt; return string::operator<(ms); } |
唉,这不适用于
1 2 3 4 | namespace std { bool operator<(const string &a, const string &b); } |
其原理相同,称之为有趣的命名函数:
1 2 3 4 5 6 | bool operator<(const mystring ms) { //some stmt; //some stmt; operator<(*this, ms); } |