B
bala
hey, i found something confusing. Look at the following code:
#include <iostream>
class mybase{
protected:
virtual void printX(){
std::cout << "i am from the base X" << std :: endl;
}
};
class firstsub : public mybase{
public:
void printX(){
std::cout << "i am from first sub class X " << std :: endl;
}
};
class secondsub : public firstsub{
private:
void printX(){
std::cout << "i am from second sub class X " << std ::
endl;
}
};
int main(){
firstsub ofs;
firstsub* pfs;
secondsub oss;
pfs = &ofs;
pfs -> printX();
pfs = &oss;
pfs -> printX();
}
And the output is:
[bhaskar@dallas basics]$ g++ inherit4.cxx
[bhaskar@dallas basics]$ ./a.out
i am from first sub class X
i am from second sub class X
I am bit confused to see the second message in the output...
Any clarifications?
--Bala
#include <iostream>
class mybase{
protected:
virtual void printX(){
std::cout << "i am from the base X" << std :: endl;
}
};
class firstsub : public mybase{
public:
void printX(){
std::cout << "i am from first sub class X " << std :: endl;
}
};
class secondsub : public firstsub{
private:
void printX(){
std::cout << "i am from second sub class X " << std ::
endl;
}
};
int main(){
firstsub ofs;
firstsub* pfs;
secondsub oss;
pfs = &ofs;
pfs -> printX();
pfs = &oss;
pfs -> printX();
}
And the output is:
[bhaskar@dallas basics]$ g++ inherit4.cxx
[bhaskar@dallas basics]$ ./a.out
i am from first sub class X
i am from second sub class X
I am bit confused to see the second message in the output...
Any clarifications?
--Bala