在C++中使用命名空间?

Using namespaces in C++?

本文关键字:命名空间 C++      更新时间:2023-10-16

这段代码有什么问题?它说func1和func2没有声明。我尝试使用"使用命名空间func1::p rint(("声明它,但我仍然收到此错误?

#include<iostream>
using namespace std;
int main(){
func1::print();
func2::print();
return 0;
}
namespace func1 {
void print() {
cout<<"HELLO WORLD";
}
}
namespace func2 {
void print() {
cout<<"HELLO";
}
}

只需对代码重新排序,如下所示:

#include<iostream>
using namespace std;
namespace func1 {
void print() {
cout << "HELLO WORLD";
}
}
namespace func2 {
void print() {
cout << "HELLO";
}
}
int main() {
func1::print();
func2::print();
return 0;
}

这样,您的两个namespaceprint函数在main中使用时就已经声明和定义。

您可以将函数定义放在main之前,也可以将函数声明放在函数声明之前,该声明告诉编译器该函数存在于某个地方。 它稍后会寻找实际的定义,如果找不到,它会抱怨。

#include<iostream>
using namespace std;
namespace func1 {
void print();
}
namespace func2 {
void print();
}
int main() {
func1::print();
func2::print();
return 0;
}
namespace func1 {
void print() {
cout<<"HELLO WORLD";
}
}
namespace func2 {
void print() {
cout<<"HELLO";
}
}