S
Senthil
Hi,
In the following code..
#include<iostream>
using namespace std;
struct game{
virtual void play()
{
cout<<"unknown"<<endl;
}
};
struct tennis ublic game{
void play()
{
cout<<"tennis"<<endl;
}
};
void Val(game b)
{
b.play();
}
int main()
{
game *pt=new tennis;
pt->play(); // prints tennis------------>1
(*pt).play(); // prints tennis ---------> 2
Val(*pt); // prints unknown ----------> 3
return 0;
}
The line marked with 1, prints "tennis", I understand.
I expected 2 and 3 to print "unknown" , but 2 prints "tennis" and 3
prints "unknown".
In both the cases i am invoking the method on a object(not on a pointer
or reference) and i do not expect a polymorphic behaviour.
Is my understanding wrong?
Thanks,
Senthil
In the following code..
#include<iostream>
using namespace std;
struct game{
virtual void play()
{
cout<<"unknown"<<endl;
}
};
struct tennis ublic game{
void play()
{
cout<<"tennis"<<endl;
}
};
void Val(game b)
{
b.play();
}
int main()
{
game *pt=new tennis;
pt->play(); // prints tennis------------>1
(*pt).play(); // prints tennis ---------> 2
Val(*pt); // prints unknown ----------> 3
return 0;
}
The line marked with 1, prints "tennis", I understand.
I expected 2 and 3 to print "unknown" , but 2 prints "tennis" and 3
prints "unknown".
In both the cases i am invoking the method on a object(not on a pointer
or reference) and i do not expect a polymorphic behaviour.
Is my understanding wrong?
Thanks,
Senthil