"operator" overloading?
Dmitry Olshansky
dmitry.olsh at gmail.com
Wed Feb 23 06:37:23 PST 2011
On 23.02.2011 17:08, %u wrote:
> Hi everyone,
>
> Was hoping someone could help me make sense of this bit of C++ code:
>
> class canvas
> {
> operator HDC() { return _hdc; }
> protected:
> canvas(HDC hdc): _hdc(hdc) {}
> HDC _hdc;
> }
>
> From what I understand, HDC is an alias for HANDLE in Windows. So
> they are overloading canvas such that when assigned to handle
> instance it returns _hdc? How is this done in D?
>
> Thanks
Something like this, and i shouldn't be a class in D (it's a proxy sort
of, right? ) :
struct canvas{
alias getHandle this;
this(HDC hdc){
_hdc = hdc;
}
@property HDC getHandle(){ return _hdc; }
private:
HDC _hdc;
}
uinttest{
HDC h = cast(HDC)1;
canvas c = h;//intitalize
h = c;
assert(h == c);
}
--
Dmitry Olshansky
More information about the Digitalmars-d-learn
mailing list