Cast a struct ...

K

Konrad Mühler

Hi,

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?

Thanks
Konrad
 
K

Konrad Mühler

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.

Thank you very much. It helped a lot :)
Konrad
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top