这里的一个例子是运营商从C++编程语言超载的例子:有关运算符重载
struct X{
int I;
X(int);
X operator+(int);
};
struct Y{
int I;
Y(X);
Y operator+(X);
operator int();
}
我不清楚什么是“诠释我”做在X和Y的定义,除了,我不知道如何分析的功能,“操作INT()”中的X.
这里的一个例子是运营商从C++编程语言超载的例子:有关运算符重载
struct X{
int I;
X(int);
X operator+(int);
};
struct Y{
int I;
Y(X);
Y operator+(X);
operator int();
}
我不清楚什么是“诠释我”做在X和Y的定义,除了,我不知道如何分析的功能,“操作INT()”中的X.
operator int()
的定义提供了从结构转换为int
,所以你可以写:
X(4);
Y y(x);
int a = y; // calls Y::operator int()
确切这意味着转换取决于操作是如何实现的
在结构int I
声明成员变量,(两者)命名为I
和类型的int
我假设在int I
两个结构都代表对象的内部状态。
Y operator+(X);
这是一个操作符,对于y + x
返回Y
类型的新对象。
operator int();
这是转换算子,这意味着一个Y
可以转换为一个int
。
操作符没有定义,所以它们的实际语义是未知的。
成员函数的主体没有被定义,所以这些类不做任何事情...... –