M
mast4as
Hi everyone
I have a problem that many people probably came across before but I
didn't find an answer on the net yet ...
I have a base class Bass and 2 derived class DerivedA & DerivedB. I
can create an new instance of the DeriveA class but then need to call
a method of the DerivedB class to save the data of the base class into
a specific file format. So I thought of using function pointer but can
seem to figure it out:
class Base
{
public:
float *data;
Base() { data = new float[10]; }
~Base() { delete [] data; }
virtual void SaveFormat() = 0;
}
class DerivedA : public Base
{
public:
void SaveFormat() { // save data in file format A }
}
class DerivedB : public Base
{
public:
void SaveFormat() { // save data in file format B }
}
int main()
{
Base *derivedA = new Derived A;
// now I want to save the data hold in derivedA but by using
SaveFormat from DerivedB ???
????
// this is where I am lost... I tried
void (Base::*SaveFormatPtrFunc)() = &DerivedB::SaveFormat;
derivedA->*SaveFormatPtrFunc();
// but that doesn't compile ;-(
}
Does anybody know what's the best way of doing this ?
Thank you -coralie
I have a problem that many people probably came across before but I
didn't find an answer on the net yet ...
I have a base class Bass and 2 derived class DerivedA & DerivedB. I
can create an new instance of the DeriveA class but then need to call
a method of the DerivedB class to save the data of the base class into
a specific file format. So I thought of using function pointer but can
seem to figure it out:
class Base
{
public:
float *data;
Base() { data = new float[10]; }
~Base() { delete [] data; }
virtual void SaveFormat() = 0;
}
class DerivedA : public Base
{
public:
void SaveFormat() { // save data in file format A }
}
class DerivedB : public Base
{
public:
void SaveFormat() { // save data in file format B }
}
int main()
{
Base *derivedA = new Derived A;
// now I want to save the data hold in derivedA but by using
SaveFormat from DerivedB ???
????
// this is where I am lost... I tried
void (Base::*SaveFormatPtrFunc)() = &DerivedB::SaveFormat;
derivedA->*SaveFormatPtrFunc();
// but that doesn't compile ;-(
}
Does anybody know what's the best way of doing this ?
Thank you -coralie