我想在命名空间系统中创建一个类Console.我这样定义了这个类:
#pragma once
namespace system
{
class Console
{
public:
~Console();
void static writeLine();
private:
Console();
};
}
Run Code Online (Sandbox Code Playgroud)
#include "Console.h"
#include <iostream>
system::Console::Console() {}
system::Console::~Console() {}
void system::Console::writeLine() {
std::cout << "test" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
但编译器拒绝定义此类,因为系统已在stdlib.h中定义(包含在iostream中).
我是否有解决方案强制编译器"忽略"系统的第一个定义?
谢谢.
燕姿
上层命名空间名称应该是合理唯一的(而不是通用的),不仅与标准库冲突,而且还与其余的库冲突.所以只需将命名空间system放入另一个命名空间或将其重命名为
namespace stefv::system
{
Run Code Online (Sandbox Code Playgroud)
此外,您可能希望使用某种特定于命名空间名称的前缀.例如ns_stefv::ns_system.