原文:https://blog.youkuaiyun.com/luoweifu/article/details/44142619
在一个企业级的开发中,一个工程往往会很大,定义的类和方法也会特别多,而且还会引入很多的第三方库,这就不可避免的会有一些同名的冲突问题。在Java中有包(Package)的概念,也就是将不同功能的类分成不同的包,来解决名称的冲突,C++中是用命名空间来解决这种冲突的。
定义命名空间
#pragma once
namespace SH
{
class Hello
{
public:
Hello(void);
~Hello(void);
public:
void SayHello();
};
void HelloWord();
}
#include "StdAfx.h"
#include "Hello.h"
#include <iostream>
using std::cout;
using std::endl;
namespace SH
{
Hello::Hello(void)
{
}
Hello::~Hello(void)
{
}
void Hello::SayHello()
{
cout << "how are you!" << endl;
}
void HelloWord()
{
cout << "Hello World!" << endl;
}
}
Hello.cpp还可以定义成这样:
SH::Hello::Hello(void)
{
}
SH::Hello::~Hello(void)
{
}
void SH::Hello::SayHello()
{
cout << "how are you!" << endl;
}
void SH::HelloWord()
{
cout << "Hello World!" << endl;
}
特例:
#include "StdAfx.h"
#include "Hello.h"
#include <iostream>
using std::cout;
using std::endl;
SH::Hello::Hello(void)
{
}
SH::Hello::~Hello(void)
{
}
void SH::Hello::SayHello()
{
cout << "how are you!" << endl;
}
void HelloWord()
{
cout << "Hello World!" << endl;
}
void SH::Hello2Sunly()
{
cout << "Hello Sunly!" << endl;
}