【发布时间】:2018-04-29 21:40:03
【问题描述】:
我正在想办法在我的班级中存储一个 typedef,我该怎么做?在发布的示例中,我想创建一个类,它允许我使用不同的“Fct”参数启动多个对象,例如“one”或“slope”,甚至可以使用 set 函数更改对象的“Fct f”:
typedef double Fct(double);
double one(double x) { return 1; }
double slope(double x) { return x / 2; }
struct myFct : Shape {
myFct(Fct f)
:f(f) {}; //"f" is not a nonstatic data member of base class of class "myFct"
private:
Fct f;
};
【问题讨论】:
-
typedef double Fct(double);是指typedef double Fct;还是前向函数声明? 在我的班级中存储 typedef 是什么意思? -
它有什么问题?请提供minimal reproducible example,因为我收到与您的问题无关的错误(
Shape未声明) -
没有“存储 typedef”之类的东西。 typedef 为类型定义了一个新名称。
-
也许你想要一个函数指针(
Fct *f;),你可以用f = one;等设置。 -
非常感谢您如此迅速地提供帮助,使用指针可以解决问题。
标签: c++ class constructor typedef