假设我有一个基类和一个像这样的派生类:
//Base.h
#pragma once
class Base
{
public:
Base();
~Base();
private:
int A;
};
//Foo.h
#pragma once
#include "Base.h"
class Foo : public Base
{
public:
Foo();
~Foo();
void setFoo(int number) { foo = number; };
private:
int foo;
};
假设我声明了一个指向基的指针:
Base* BasePtr = new Foo();
如何使用此 Base* Baseptr;
变量访问 setFoo()
?
不使用虚方法可以做到吗?
在基类中有一个虚方法只是为了能够使用 Foo
自己的方法,这似乎违反直觉。
我问的原因是我有一个赋值需要一组指向 Base 的指针,并且需要一种编辑派生类自身属性的方法。
谢谢
最佳答案
这个怎么样:
Foo * p = new Foo();
p->setFoo(10);
Base * BasePtr = p;
或者:
Base * BasePtr = new Foo();
static_cast<Foo *>(BasePtr)->setFoo(10);
关于C++ |通过指向基的指针访问派生类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36521075/