#include<iostream>
usingnamespace std;
class base{
public:
virtualvoid funct(){
cout<<"This is a base class's funct()";
}
};
class derived1 : public base{
public:
void funct(){
class
cout<<"This is a derived1 class's funct()";
}
};
int main()
{
base *p, b;
derived1 d1;
*p = &b;
p->funct(); //call to base class funct().
*p=&d1;
return 0;
}
test.cpp:21:9: error: no match for 'operator=' (operand types are 'base' and 'base*')
*p = &b;
#include<iostream>
usingnamespace std;
class base
{
public:
virtualvoid funct()
{
cout<<"This is a base class's funct()";
}
};
class derived1 : public base{
public:
void funct(){
cout << "This is a derived1 class's funct()";
}
};
int main()
{
base *p, b;
derived1 d1;
p = &b;
p->funct(); //call to base class funct().
p=&d1;
return 0;
}