【问题标题】:Require typedef and class at the same time同时需要 typedef 和 class
【发布时间】:2016-07-20 13:20:07
【问题描述】:

我的代码有问题,我不知道该如何解决。所以,我有一个类(例如:myClass)和一个函数,该函数应该返回一个指向以 myClass 作为参数的 void 函数的指针。要返回函数的指针,我必须在定义类及其方法之前使用此语句“typedef void(*fp)(const myClass &object)”,但由于参数是 MyClass 类型,编译器告诉我该类没有'没有被宣布。

("fp getFunction()" 需要 "typedef" 和 "typedef" 需要定义 "myClass"。我不知道我已经说清楚了,但如果它们是关于的,我会回答所有问题代码。)

编辑:如果我尝试在 myClass 声明之后放置“typedef”,我的编译器会告诉我“fp 不是类型”(或类似的东西)。

typedef void(*fp)(const myClass& object);

class myClass{

private:
    char statement[100];
    void (*_pointer)(const myClass& object);

public:
    void setStatement(char *sequence){strcpy(statement,sequence);}
    void setPointer(void (*_pointerToFunction)(const myClass& object)) {_pointer = _pointerToFunction;}

    fp getFunction() {return _pointer;}
    void showStatement() {cout << statement << " ";}
};

【问题讨论】:

标签: c++ function oop methods typedef


【解决方案1】:

myClass 转发声明为class

typedef void(*fp)(const class myClass& object);
                        ^^^^^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2017-04-23
    • 2013-09-16
    相关资源
    最近更新 更多