在FileThree.h中
#ifndef FILETHREE
#define FILETHREE
namespace blue{}
class Filethree
{
public:
Filethree(void);
~Filethree(void);
};
#endif
Run Code Online (Sandbox Code Playgroud)
在FileThree.cpp里面
#include "Filethree.h"
#include<iostream>
using namespace std ;
namespace blue{
void blueprint(int nVar){
cout<<"red::"<<nVar<<endl;
}
}
Filethree::Filethree(void)
{
}
Filethree::~Filethree(void)
{
}
Run Code Online (Sandbox Code Playgroud)
在FileFour.h中
#ifndef FILEFOUR
#define FILEFOUR
namespace red{}
class FileFour
{
public:
FileFour(void);
~FileFour(void);
};
#endif
Run Code Online (Sandbox Code Playgroud)
在FileFour.cpp里面
#include "FileFour.h"
#include<iostream>
using namespace std;
namespace red{
void redprint(double nVar){
cout<<"red::"<<nVar<<endl;
}
}
FileFour::FileFour(void)
{
}
FileFour::~FileFour(void)
{
}
Run Code Online (Sandbox Code Playgroud)
在main.cpp里面
#include "FileFour.h"
#include "Filethree.h"
using namespace red ;
using namespace blue ;
int main()
{
blueprint(12);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我编译上面的文件时,它给我以下错误.
error C3861: 'blueprint': identifier not found
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么我会收到这个错误?
如果未在头文件中声明它们,则编译器无法找到它们.您需要在FileThree.h中声明blueprint函数namespace blue
FileThree.h:
namespace blue{
void blueprint(int nVar);
}
Run Code Online (Sandbox Code Playgroud)
与redprint函数相同,需要在FileFour.h里面声明它namespace red
FileFour.h
namespace red{
void redprint(double nVar);
}
Run Code Online (Sandbox Code Playgroud)