#include
using namespace std;
class Base {
public:
virtual int print() { return -1; }
};
class Derived : public Base {
public:
Derived(){}
int print() { return 1024; }
};
void main() {
Derived derived;
Base base = derived;//不允许对不访问的基类“Base”进行转换
if( base.print() == 1024 )
cout << "OK";
else
cout << "NOT OK";
getchar();
}
用基类指针指向派生类对象才行
#include <iostream>
using namespace std;
class Base {
public:
virtual int print() { return -1; }
};
class Derived : public Base {
public:
Derived(){}
int print() { return 1024; }
};
void main() {
Derived derived;
Base *base = &derived;//不允许对不访问的基类“Base”进行转换
if( base->print() == 1024 )
cout << "OK";
else
cout << "NOT OK";
getchar();
}
Base*base=&XXX
噢啦啦啦啦啦啦噜啦噜兔兔