小编pey*_*man的帖子

如何在C++中使用upcast unique_ptr指针来引用派生类中定义的方法?

假设以下课程

class Base
{
   void Doajob(a,b){...}
}

class Derived: public Base
{
   void Doanotherjob(a,b,c){...}
}
Run Code Online (Sandbox Code Playgroud)

我已经定义了一个指针如下:

 auto ptr= unique_ptr<Base>(new Derived(name));
Run Code Online (Sandbox Code Playgroud)

现在我想使用ptr指针访问Doanotherjob:

ptr->Doanotherjob(a,b,c); // ERROR
((unique_ptr<Base>) ptr)->Doanotherjob(a,b,c); // ERROR
((unique_ptr<Derived>) ptr)->Doanotherjob(a,b,c); // ERROR
Run Code Online (Sandbox Code Playgroud)

那是不是一件正确的事情?语法是什么?

c++ pointers upcasting unique-ptr

1
推荐指数
1
解决办法
148
查看次数

标签 统计

c++ ×1

pointers ×1

unique-ptr ×1

upcasting ×1