Konrad Mühler wrote:
I've a struct:
struct POINT {
int x,y;
};
And I want to commit a variable of type POINT in a function
myFunction(POINT myVar) { ... }
If I call the function, I want to write both values for x and y directly
in the function call like :
myFunction(POINT(1,2));
This doesn't work and I want to know, how I can do this. Or do I have to
define the struct as an independent class?
You can either define a constructor in your struct or define a
stand-alone function that would return a struct made from two arguments
(sort of out-of-the-class constructor):
struct POINT {
int x,y;
POINT(int x_, int y_) : x(x_), y(y_) {} // constructor
};
...
myFunction(POINT(1,2));
or
POINT makePOINT(int x, int y) {
POINT p = { x, y };
return p;
}
...
myFunction(makePOINT(1,2));
Beware, that according to the current Standard, adding a user-defined
constructor prevents your class from being a POD. I think it's fixed in
the upcoming Standard. It actually may not mean anything different to
your program, but I just thought I'd mention it.
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask