gpt4 book ai didi

c++ - 覆盖从 c struct 继承的函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:56 26 4
gpt4 key购买 nike

好的,所以我在 one.h 中有这个结构

typedef struct NWK_DataReq_t
{
uint16_t dstAddr;
uint8_t options;
uint8_t *data;
uint8_t size;

void (*confirm)(struct NWK_DataReq_t *req);
} NWK_DataReq_t;

稍后,在 two.h 中有继承自 NWK_DataReq_t 的结构:

#include "one.h"

struct commandReq_t : public NWK_DataReq_t {
...
}

struct dataReq_t : public NWK_DataReq_t {
...
}

我的目标是继承NWK_DataReq_t 的结构,同时为NWK_DataReq_t 的某些变量设置默认值并将变量添加到结构中。到目前为止,为变量分配默认值按预期工作。我遇到的问题是分配 (*confirm)功能。

struct commandReq_t : public NWK_DataReq_t {
uint16_t dstAddress = 2;
uint8_t options = 8;

void confirm = commandReqConf;

char newVar[20] = "Hello";
} commandReq;

...

void commandReqConf(NWK_DataReq_t *req);

我不知道如何设置默认函数来覆盖它。我的目标是将 commandReqConf 设置为 (*confirm) 函数并将它传递给 NWK_DataReq_t

我希望这是有道理的,任何帮助都会很棒。

最佳答案

恕我直言,正如您编写的 struct commandReq_t : public NWK_DataReq_t { 并将问题标记为 ,您现在处于 C++ 世界。

恕我直言,初始化对象的最简单方法是在构造函数中:

struct commandReq_t : public NWK_DataReq_t {
commandReq_t() { // default ctor
dstAddr = 2;
options = 8;
strcpy(newVar, "Hello");
confirm = &commandReqConf;
}

char newVar[20]; // initialized at ctor initialization time
} commandReq;
...
static void commandReqConf(NWK_DataReq_t *req);

因为函数 commandReqConf 实际上是类 CzarController 的成员,它应该是静态的 - 但如果它包含在与是结构体。

关于c++ - 覆盖从 c struct 继承的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35802050/

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