注释的那一句不懂,而且要求输出OK,该怎么做呢?求大神赐教啊!
问题描述:
#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
答
噢啦啦啦啦啦啦噜啦噜兔兔