gpt4 book ai didi

c++ - 在类构造函数中传递函数代码

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:11 25 4
gpt4 key购买 nike

我想知道是否可以将代码函数传递给 C++ 中类的构造函数?

类.hpp

class A {
public:
A(void (*f)( parameters ... );
private:
void comp( parameters ...);
}

类.cpp

#include "class.hpp"
A::A(void (*f)( parameters ....) {
&comp = &f;
}

背后的想法是我想有一个比较函数,我可以在创建对象时实例化它。

非常感谢!

最佳答案

是的,无论如何声明函数指针的语法不是您使用的语法:

class A {
public:
A(void (*f)( int a ) ) : comp(f) {};
private:
void (*comp)( int a ); // Function pointer
};

void comparisonFun(int a) {
//...
}

int main()
{
A obj(comparisonFun);
}

通过做

class A {
public:
A(void (*f)( parameters ... );
private:
void comp( parameters ...);
}

您正在声明一个 comp 函数。

关于c++ - 在类构造函数中传递函数代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25864742/

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