我的班级定义为:(摘要)
public ref class PixelFormatDescriptor
{
public:
PixelFormatDescriptor();
PixelFormatDescriptor(PIXELFORMATDESCRIPTOR *pfd);
const PIXELFORMATDESCRIPTOR* operator*(System::Drawing::GLSharp::PixelFormatDescriptor ^p)
{
return m_pfd;
}
...
private:
PIXELFORMATDESCRIPTOR *m_pfd;
};
我正在尝试将其用于以下用途:
PixelFormatDescriptor ^pfd = new PixelFormatDescriptor();
::ChoosePixelFormat(m_hdc, pfd);
我的问题是
ChoosePixelFormat
期望pfd是const PIXELFORMATDESCRIPTOR *
,我该如何解决运算符重载,以允许我传递PixelFormatDescriptor ^
并让它自动返回PIXELFORMATDESCRIPTOR *
,而无需实现命名属性或获取方法。 最佳答案
这是定义相同转换运算符的方法,但是它是一种静态方法,被认为在受管地区更为标准。
static operator PIXELFORMATDESCRIPTOR* (PixelFormatDescriptor ^p)
{
return p->m_pfd;
}
这是记录语法的页面:
http://msdn.microsoft.com/en-US/library/vstudio/047b2c75.aspx
关于c++ - 托管C++中的运算符重载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16926866/