在单独的头文件(C+;+;)中声明的命名空间中定义函数 我有一个问题,我一直在寻找一点,而且是新的C++,我甚至不知道这是可能的。我试图复制一本编程书中的代码体,但当我试图在Visual Studio中使用它时,我得到一个错误,告诉我“函数无法在当前范围内定义”
如果我把它从“记录”名称空间中去掉,它就可以正常工作 那么,这段代码是合法的还是我不知道这种语法有什么奇怪的地方在单独的头文件(C+;+;)中声明的命名空间中定义函数 我有一个问题,我一直在寻找一点,而且是新的C++,我甚至不知道这是可能的。我试图复制一本编程书中的代码体,但当我试图在Visual Studio中使用它时,我得到一个错误,告诉我“函数无法在当前范围内定义”,c++,scope,namespaces,C++,Scope,Namespaces,如果我把它从“记录”名称空间中去掉,它就可以正常工作 那么,这段代码是合法的还是我不知道这种语法有什么奇怪的地方 #include <iostream> #include "Employee.h" using namespace std; namespace Records { Employee::Employee() : mFirstName("") , mLastName("") , mEmployeeNumber(-1) , mSalary(kDefaultStartingSa
#include <iostream>
#include "Employee.h"
using namespace std;
namespace Records {
Employee::Employee()
: mFirstName("")
, mLastName("")
, mEmployeeNumber(-1)
, mSalary(kDefaultStartingSalary)
, mHired(false)
}
#包括
#包括“Employee.h”
使用名称空间std;
名称空间记录{
雇员::雇员()
:mFirstName(“”)
,mLastName(“”)
,mEmployeeNumber(-1)
,澳门特别行政区(kDefaultStartingSalary)
,mHired(错)
}
首先,构造函数上需要一个主体:
namespace Records {
Employee::Employee()
: mFirstName("")
, mLastName("")
, mEmployeeNumber(-1)
, mSalary(kDefaultStartingSalary)
, mHired(false)
{
}
}
而
Employee
也必须在Employee.h中的Records
命名空间中声明。Employee.h是什么样子?Employee
不是Records
命名空间的成员,它是全局命名空间的成员。谢谢,我从书中复制并粘贴了它,假设语法可能不同。