0

我是 C++ 新手,我有一个问题:作为函数的 struct 的成员可以在 struct 本身之前定义吗?

像这样:

void foo_t::SayHello() {
    printf("Hello,World!\n");
}

struct foo_t {
    void SayHello();
};

因为通过使用它,我在 C 文件中拆分struct了一个foo.handSayHello()函数。

编辑:: 然后包含.c在文件的顶部.h。不在文件末尾。

我很抱歉不要更具体,因为我是 C++ 新手,我不知道 C++ 的术语。

4

2 回答 2

2

没有意义)

但你可能会这样做:

class foo_t;
void say_hello(const foo_t& foo) // defined in a source
struct foo_t {
    void SayHello() const { say_hello(*this); }
};

但是:“然后将 .c 包含在 .h 文件的顶部。不在文件末尾。” 让我颤抖

于 2013-08-25T15:43:17.377 回答
1

不,但您可以制作函数代理:

void foo_t_SayHello() {
    printf("Hello,World!\n");
}

struct foo_t {
    void SayHello() { foo_t_SayHello(); }
};

一个体面的编译器会内联它,不会产生任何开销。

于 2013-08-25T15:29:25.793 回答