在单独的头文件 (C++) 中声明的命名空间中定义函数

Defining functions in a namespace declared in a seperate header file (C++)

本文关键字:声明 命名空间 定义 函数 C++ 单独 文件      更新时间:2023-10-16

我有一个问题,我一直在看这个问题,而且我是C++新手,我什至不知道这是否可能。我正在尝试复制编程书中的代码体,但是当我尝试在Visual Studio中使用它时,我收到一个错误,告诉我"无法在当前范围内定义该函数"。

如果我将其从"记录"命名空间中取出,它可以正常工作。

那么,这套代码是合法的,还是我不知道的这种语法有什么怪癖?

#include <iostream>
#include "Employee.h"
using namespace std;
namespace Records {
Employee::Employee()
: mFirstName("")
, mLastName("")
, mEmployeeNumber(-1)
, mSalary(kDefaultStartingSalary)
, mHired(false)
}

首先,你的构造函数上需要一个主体:

namespace Records {
Employee::Employee()
: mFirstName("")
, mLastName("")
, mEmployeeNumber(-1)
, mSalary(kDefaultStartingSalary)
, mHired(false)
{
}
}

并且Employee也必须在 Employee.h 的 Records 命名空间中声明。