gpt4 book ai didi

C++ 函数指针赋值不能转换类内的类型

转载 作者:行者123 更新时间:2023-11-27 22:45:09 25 4
gpt4 key购买 nike

<分区>

我有一个简单的类,它有一个指向函数的指针。构造函数将其指向函数“morning()”,我在编译时收到错误消息:

error: cannot convert ‘Test::morning’ from type ‘void (Test::)()’ to type ‘Test::function {aka void (*)()}’
Test() {assignPtr = morning;}

当在函数外部声明“morning()”和 typedef 时,代码确实可以编译,我不知道如何让它在当前类中工作。

#include <iostream>
#include <string>

class Test {
public:
Test() {assignPtr = morning;}
void say(std::string a) {name = a; assignPtr();};
private:
typedef void(*function)();
void morning() {std::cout << "Good morning, " << name << std::endl;}
void night() {};
function assignPtr;
std::string name;
};

int main() {
Test a;
a.say("Miguel");
}

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