以下是从C ++编程语言重载运算符的示例:
struct X{
int I;
X(int);
X operator+(int);
};
struct Y{
int I;
Y(X);
Y operator+(X);
operator int();
}
我不清楚“int I”在X和Y的定义中做了什么。此外,我不明白如何在X的定义中分析“operator int()”的功能。
答案 0 :(得分:2)
operator int()
提供了从结构转换为int
的权限,因此您可以写:
X(4);
Y y(x);
int a = y; // calls Y::operator int()
该转换的确切含义取决于运营商的实施方式
结构中的int I
声明成员变量,(两者)名为I
,类型为int
答案 1 :(得分:2)
我假设两个结构中的int I
代表对象的内部状态。
Y operator+(X);
这是y + x
返回类型为Y
的新对象的运算符。
operator int();
这是转换运算符,这意味着Y
可以转换为int
。
没有运算符的定义,因此它们的实际语义是未知的。