设 Point
是一个类,其实例可以明确地强制转换为 wxPoint
:
class Point{
private:
int x;
int y;
public:
explicit operator wxPoint() const
{
return wxPoint(x, y);
}
// More stuff
}
我有一个返回 Point
类型对象引用的函数。该函数的头文件如下:
const Point& GetPoint();
我的问题是:定义以下 Foo
函数是否安全?
const wxPoint& Foo() const{
return (wxPoint&) GetPoint();
}
我最初使用 return (wxPoint) GetPoint();
实现了 Foo
,但是这样会创建一个新的(本地)对象,因此触发了有用的警告。在此处显示的代码可编译且没有警告。
我找到的有关这种类型转换的所有信息都是关于继承类的,但这里并非如此。
解释以这种方式转换引用时发生的确切情况将非常感激。