除了下面第二个中选择的方法之外,还有一种更简单的方法可以访问类GetJ()
中的成员函数吗?Derived
std::cout
#include <iostream>
#include <memory>
class Base
{
int i;
public:
Base(int k) : i(k) {}
int GetI() { return i; }
};
class Derived : public Base
{
int j;
public:
Derived(int u) : Base(10) { j = u; }
int GetJ() { return j; }
};
int main()
{
std::unique_ptr<Base> uptr(new Derived(5));
std::cout << uptr->GetI() << std::endl;
std::cout << static_cast<Derived*>(uptr.get())->GetJ() << std::endl;
}