[问题] namespace在不同档案中的用法问题

楼主: taetae0028 (走召酉告白勺)   2020-05-04 03:54:36
开发平台(Platform): (Ex: Win10, Linux, ...)
Dev C++ 、 g++
小弟最近跟哥哥要了学校讲义自学C++,
里面提到解决name collision的其中之一个方法是使用namespace,
不过不知道是自己哪里做错,
小弟试着跟着范例code做一遍却一直卡关,
以下是我自己打的code:
__________main.cpp__________
#include <iostream>
#include "s1.h"
using namespace std;
float PI =3.14;
int main(){
cout << "main" << endl;
cout << "PI = " << PI << endl;
PI5::func1();
return 0;
}
__________s1.h__________
void func1();
__________s1.cpp__________
#include <iostream>
using namespace std;
namespace PI5{
float PI = 5;
void func1(){
cout << "func1" << endl;
cout << "2PI = " << 2*PI;
cout << endl;
}
}
依照讲义中的说法,
理想中的ouput应该是:
main
PI = 3.14
func1
2PI = 10
但实际编译却会出现'PI5' has not been declared的错误,
小弟已经在此卡关许久...,
还请各位前辈帮小弟指点迷津!
作者: KaryuuIssen (一闪)   2020-05-04 04:05:00
s1.h改成 namespace PI5 { void func1(); }
作者: ou9810 ( )   2020-05-05 10:34:00
宣告跟实作都要在同个namespace

Links booklink

Contact Us: admin [ a t ] ucptt.com