【发布时间】:2016-11-14 01:38:13
【问题描述】:
假设我有以下结构
struct Being{
int canFly;
int (*printFlying)();
}
我想做如下的事情:
int main(){
struct Being * flyingThing = new_flyingThing();
struct Being * thingThatCantFly = new_Thing();
flyingThing->printFlying(); /* "I'm flying!" */
thingThatCantFly->printFlying(); /* "I can't fly!" */
}
看起来我需要printFlying函数才能访问结构中的canFly变量,但我不知道该怎么做,或者这是否可能。
有没有办法让我的代码做我想做的事?谢谢!!
我在 cmets 中解释了为什么这个问题不是链接问题的重复。
【问题讨论】:
-
C 不是 Java。您似乎正在尝试在 C 中使用 OOP,但它并不是为它设计的。
-
你需要给
printFlying一个参数,它是指向相关对象的指针 -
new_flyingThing()和new_Thing()需要在成员中放置不同的功能,并且功能应该打印相应的消息。 -
@csTroubled 那是不可能的。在其他语言中,隐式
this参数被传递给函数。在 C 中,您必须明确指定它。如果需要 OO 支持,请使用 C++。 -
是的,您似乎正在尝试做一些对 OO 语言来说很正常的事情,但您不想使用 OO 语言。
标签: c