|
Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.ide digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript electronics |
digitalmars.D.learn - opCall in struct don't work
Hi,
A lot of time without using structs and i'm having a bit of trouble now.
I have in my program a struct and a class:
module Control;
struct Point
{
int x, y;
Point opCall(int x, int y)
{
Point p;
p.x = x;
p.y = y;
return p;
}
}
class Control
{
private Point mypoint;
void Hello()
{
mypoint = Point(2, 3);
}
}
This module won't compile. I get the following error:
gui\control.d(22): Error: this for opCall needs to be type Point not type
gui.control.Control
gui\control.d(22): class gui.control.Control member opCall is not accessible
What the hell is wrong with this? I'm using dmd v1.028 under Win32.
Thanks in advance.
Apr 29 2008
You need to make the opCall static.
struct Point {
// ...
static Point opCall(int x, int y) {
// ...
}
}
Non-static opCalls can be used like this:
Point point;
point(10, 20); // treat point as a function
Heinz wrote:
Apr 29 2008
Ary Borenszweig Wrote: Apr 29 2008
|