如果我创建一个名称空间Maths并使用另一个名为Maths的名称空间库,我是否会因重新声明像PI这样的变量或重新定义像add这样的函数而出错?
我问,因为如果我选择不使用名称空间,那么做这些事情会出错,对吗?
如果我没有使用命名空间得到错误,但我没有使用命名空间,那么不使用命名空间更安全吗?
感谢您的时间。
答案 0 :(得分:1)
首先,名称空间必须是global
而在namespace
不同的same
您可以使用same namespace
函数或变量,但在 namespace A {
int i=10;
char i ='a';/** is not valid **/
void print() {
...
}
}
namespace B {
float i = 1.5; /** valid **/
void print() { /** valid **/
...
}
}
中您可以两次都有相同的变量声明。
namespace A
在B
和i
的上述示例中,您分别有int
i
类型和float
valid
类型,namespace A
1}}但是在i
本身你不能有不同类型的变量user = int(input("How many colors?:"))
for i in range(user):
print("Color {}".format(i+1))
(被视为重新声明)
答案 1 :(得分:0)
决定自己测试一下:
//in file testnamespace.h
namespace test
{
int t = 1;
void fooo(){};
}
//in file testnamespace2.h
namespace test
{
int t=10000;
void fooo(){int x = -2;}
}
//in file test.cpp
#include "testnamespace.h"
#include "testnamespace2.h"
int main()
{
int ayyyeee = test::t;
foo();
return 0;
}
这给重新定义,多次初始化带来了错误。
我所寻找的一切。