2016-02-28 53 views
-1

我有一个问题,我一直在寻找一点,并且对C++不熟悉,我甚至不知道这是否可能。我试图在编程书中复制一段代码,但是当我尝试在Visual Studio中使用它时,我得到一个错误,告诉我“函数不能在当前作用域中定义”。在单独的头文件(C++)中声明的名称空间中定义函数

如果我把它从“记录”命名空间中取出,它可以正常工作。

那么,这个代码体是合法的还是有一个关于这个语法的怪癖,我只是不知道?

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

} 
+0

Employee.h的外观如何? – 1201ProgramAlarm

+0

'Employee'不是'Records'命名空间的成员,它是全局命名空间的成员。 – 0x499602D2

回答

0

一件事,你需要在你的构造体:

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

} 

而且Employee必须在Employee.h的Records命名空间以及声明。

+0

谢谢,我从书中复制并粘贴它,假设语法可能不同。 – StarFlashHD

相关问题