【发布时间】:2021-11-22 07:48:10
【问题描述】:
我将其命名为 next.h 并包含在 main.cpp sn-p 中
我创建了两个库,一个用于主要功能,另一个仅用于创建类 我想练习 OOPS,所以我突然想到使用命名空间来了解它们的全部潜力,但我对为什么它不能按预期工作感到困惑
#include<bits/stdc++.h>
namespace custom
{
class aries
{
public:
int data;
};
}
namespace custom2
{
class aries
{
public:
double data1;
};
}
#include<bits/stdc++.h>
#include "next.h"
using namespace std;
using namespace custom;
using namespace custom2;
int main()
{
custom2::aries a;
a.data1=5.000;
cout<<a.data1;
return 0;
}
以下程序的输出如下:
5
...Program finished with exit code 0
Press ENTER to exit console.
我的问题是它应该是 5.000 但为什么它是 int 类型而不是 double 类型?
【问题讨论】:
-
这与命名空间或类无关。删除所有该代码。
double a = 5.000; std::cout << a << '\n';会做同样的事情。默认格式会抑制尾随零。将值更改为 5.1,您会看到更多数字。 -
首先请don't include
<bits/stdc++.h>。这是你从一开始就不应该了解的东西。 -
其次,
using namespace std;is a bad habit,根据您的设计,using也适用于任何其他命名空间。 -
5.0000000000 = 5
标签: c++ class namespaces