C ++命名空间声明和定义

Pot*_*oto 1 c++ namespaces header-files

民间,

我在单个文件中创建了一个名称空间,但是如何准确地将定义和声明分开呢?是否可以像在文件类集中那样为声明创建.h和为定义创建.cpp?如果是,那么是否需要在新程序中包括名称空间头文件,或者使用namspace mynamespace是否足够?

Rem*_*eau 5

任何体面的C ++书籍都应涵盖名称空间和代码分离。

尝试这样的事情:

myfile.h

#ifndef myfile_H
#define myfile_H

namespace myns
{
    class myclass
    {
    public:
        void doSomething();
    };
}

#endif
Run Code Online (Sandbox Code Playgroud)

myfile.cpp:

#include "myfile.h"

void myns::myclass::doSomething()
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

然后您可以像这样使用它:

#include "myfile.h"

myns::myclass c;
c.doSomething();
Run Code Online (Sandbox Code Playgroud)

要么:

#include "myfile.h"

using namespace myns;

myclass c;
c.doSomething();
Run Code Online (Sandbox Code Playgroud)