C++ 禁用子 class 中的重载运算符
C++ disable an overloaded operator in child class
我有这个字符串 class,我在其中重载了运算符 + 以连接字符串。
class String {
private:
char* value;
public:
String(char*);
String operator+(String&);
};
int main() {
String s1("Hello");
String s2(" world!");
String s3 = s1 + s2;
cout << s3 << endl;
return 0;
}
结果:
世界,您好!
我声明了一个新的 class GoodString,它是字符串 class 的子字符串。我想禁用重载运算符。我尝试了一些东西但没有成功。
有什么建议吗?谢谢!
将其声明为重写的私有方法。此外,下次为 GoodString
class.
添加代码
你有两种可能。
- 覆盖
private
可见性
class GoodString : public String {
private:
String operator+(String&);
};
delete
运算符 (c++11 起)
class GoodString : public String {
public:
String operator+(String&) = delete;
};
我有这个字符串 class,我在其中重载了运算符 + 以连接字符串。
class String {
private:
char* value;
public:
String(char*);
String operator+(String&);
};
int main() {
String s1("Hello");
String s2(" world!");
String s3 = s1 + s2;
cout << s3 << endl;
return 0;
}
结果: 世界,您好!
我声明了一个新的 class GoodString,它是字符串 class 的子字符串。我想禁用重载运算符。我尝试了一些东西但没有成功。 有什么建议吗?谢谢!
将其声明为重写的私有方法。此外,下次为 GoodString
class.
你有两种可能。
- 覆盖
private
可见性
class GoodString : public String {
private:
String operator+(String&);
};
delete
运算符 (c++11 起)
class GoodString : public String {
public:
String operator+(String&) = delete;
};