Hello!
Please help me to understand c++ better:
If I have a class ClassA, and a class named ClassB, which is derived from ClassA.
If I have a function:
can I pass a variable of type ClassB to this function?
ClassB b = new ClassB;
f(b);
:(
Thnaks in advance:
R4ZOR
int f(ClassA* x) {}
ClassB b = new ClassB();
f(&b);
I think he is meaning this, I am not sure if this will work.. You have to try ;)
For me programming is always trying.. That's because one thing works for C++ but not for Java or C#...
first of all not
but
secondly of course you can write
f(ClassA x) {}
ClassB* b = new ClassB;
f(*b);
and your compiler will interpret this in the following way:
f((ClassA)(*b)); // TYPECASTING!!!
And inside f will be called member functions of CalssA even if they are overrided in ClassB.
thridly (MAIN SURPRISE)
all changes applyed to x inside f(ClassA x) will not have effect on b!
declaration f(ClassA x) means that inside f will be passed temporarry copy of object *b, which is to be destroyed after exiting from f.
Try to read some books on c++ and start from passing arguments to functions.
(Excuse my poor english)