gpt4 book ai didi

C++ 继承函数指针,可与仅派生方法一起使用

转载 作者:行者123 更新时间:2023-11-30 01:10:35 24 4
gpt4 key购买 nike

这是一个设计问题的简化示例。

我有类 Base。它有一个函数指针类型和一个该函数指针类型的 protected 变量。

#ifndef BASE_H
#define BASE_H

class Base {

typedef void (Base::*FunctionPointer) ( void );

protected:

FunctionPointer pointer;

};

#endif /* BASE_H */

然后我有继承自 Base 的类 Derived。此类希望能够将继承的 pointer 变量设置为它自己的方法的地址,而不是从 Base 继承或覆盖的方法。

#ifndef DERIVED_H
#define DERIVED_H

#include "Base.h"

class Derived : public Base{

public:
Derived()
{
pointer = &Derived::ProtectedMethod;
}

void ProtectedMethod()
{

}

};

#endif /* DERIVED_H */

问题在于函数指针的类型 (void (Base::*FunctionPointer) ( void )void (Derived::*FunctionPointer) ( void ) ) 不同。

简而言之

有没有办法让基类中的指针变量可以分配给派生类方法(而不是重写)?

最佳答案

Is there a way to have a pointer variable in a base class that can be assigned to derived classes methods (not overridden)?

不,你不能那样做。它们是不相关的类型。

关于C++ 继承函数指针,可与仅派生方法一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37368999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com