在单独的头文件 (C++) 中声明的命名空间中定义函数
Defining functions in a namespace declared in a seperate header file (C++)
我有一个问题,我一直在看这个问题,而且我是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
命名空间中声明。
相关文章:
- 在命名空间 c++ 中正确声明 extern 变量
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- 转发声明在命名空间中不起作用的替代方法
- C++ 17 个友元函数声明和内联命名空间
- 为什么 gcc 无法从其前向声明中检测到友元类命名空间?
- 声明"使用命名空间 C;"对于证明 [namespace.udir]/3 中的示例中显示的结果至关重
- 命名空间内C++变量声明
- 在命名空间中声明变量
- C++ 没有在命名空间外部声明的类主体的类
- 如何在命名空间中声明外部全局,然后定义它?
- 在 c++ 中在运行时声明对命名空间的引用
- 有没有办法转发声明命名空间或只是提前使其可见
- 如何在不同的命名空间中使用双重声明的 extern "C"函数进行 clang 构建(如 msvc 和 gcc)
- 为什么我应该使用extern关键字来声明命名空间范围中的变量
- 如何正确声明命名空间函数
- 如何转发声明命名空间中的类
- 在目标 C 中向前声明命名空间的C++类
- 在命名空间中的另一个函数内部正向声明命名空间中的一个函数
- 是否可以转发声明命名空间内的 typedef
- "using"命名空间和声明命名空间有什么区别?