如何实现不包含 class 名称的 C++ 头文件?

How do I implement a C++ header file that doesn't contain a class name?

编辑:谢谢!我来自 Java,所以事实证明我只是不熟悉自由函数是什么以及它们是如何工作的。感谢大家的回答。

对于一项作业,我获得了一个 C++ 头文件 (.h),其中包含一堆空函数,我需要在单独的 .cpp 文件中实现这些函数,而无需更改原始头文件。但是,头文件中从未提到过明确的 class 或 class 名称——我原以为会有类似

的名称
    ClassName 
    {
       ... functions, etc...
    }

但是什么都没有,只有成员函数。也没有构造器。

因为没有 class 或 class 名称,我不确定使用什么语法来实现 .cpp 文件中的成员函数。通常我会把像

这样的东西放在哪里
    returnType ClassName::functionName()
    {
        ...implementation...
    }

我不确定要插入什么来代替 ClassName,因为没有 class,或者我是否需要完全使用不同的格式。提前致谢!

C++ 不同于 object-oriented Java 或 C#,它允许自由函数 - 存在于任何 class 之外的函数。看来您的 header 声明正是这样。

简单使用

returnType functionName() //defines a function in current namespace, global or other
{
    ...implementation...
}

不需要插入class名称,只需要在头文件中正确写入声明的函数签名即可:

file.h

#ifndef HEADER_H
#define HEADER_H

void f ();
void g ();

#endif

file.cpp


#include "file.h"

void f ()
{

}

void g ()
{

}

However, there's no explicit class or class name ever mentioned in the header file

没关系;并非所有内容都需要 class.

而且,如果您的印象是 header 仅用于声明 class-related 事物(因为有些课程倾向于以 class 来命名它们,它们包含的定义),那不是真的! header 可以包含任何内容的声明!一个 class,多个 class,non-class 事物,以上的混合……

there's nothing, just the member functions.

它们不是成员函数;它们只是……功能。

There's also no constructor.

这也行!只有 classes 需要构造函数。

Because there's no class or class name, I'm unsure what syntax to use to implement the member functions in the .cpp file.

函数的简单定义如下:

int foo(…)
{
   /* code */
}

…其中 int 是 return 类型,foo 是名称, 是我的参数占位符(如果适用)。

就是这样!

你的教科书中应该有一章是关于so-called“自由函数”的,可能classes.

之前