【问题标题】:Defining functions in a namespace declared in a seperate header file (C++)在单独的头文件 (C++) 中声明的命名空间中定义函数
【发布时间】:2016-06-11 04:55:33
【问题描述】:

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

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

那么,这段代码是合法的还是我不知道的语法有什么奇怪的地方?

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

}

【问题讨论】:

  • Employee.h 长什么样子?
  • Employee 不是Records 命名空间的成员,它是全局命名空间的成员。

标签: c++ scope namespaces


【解决方案1】:

一方面,您的构造函数需要一个主体:

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

}

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

【讨论】:

  • 谢谢,我从书中复制并粘贴了它,假设语法可能不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多