gpt4 book ai didi

C++ typedef 静态函数指针 : undefined symbol

转载 作者:行者123 更新时间:2023-11-27 23:15:48 24 4
gpt4 key购买 nike

//class.h
typedef double (*ffunct)(double x1, double y1, double x2, double y2);
class Class {
public:
static ffunct myfunct;
static void setFunct();
static double doSomething(double x1, double y1, double x2, double y2);
static void call();
}

//class.cpp
void Class::setFunct(){
Class::myfunct=Class::doSomething;
}
double Class::doSomething(double x1, double y1, double x2, double y2) {
cout << "Hello World" << endl;
}
void Class::call() {
Class::myfunct(1.0,2.0,3.0,4.0);
}
//main.cpp

Class::setFunct();
Class::call();

运行程序导致 Undefined symbols for architecture x86_64: "Class::myfunct", referenced from Class::setFunct, Class::call ...

那我做错了什么?

最佳答案

在你的cpp文件中你还需要一行:

ffunct Class::myfunct = NULL;

类声明说变量将存在于某处,但您从未给它定义。由于它不是每个对象的一部分,因此必须单独定义。

关于C++ typedef 静态函数指针 : undefined symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472631/

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