我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::cout和std::cin直接代替.
为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?
使用单个语句更方便,更清晰
import java.awt.*;
Run Code Online (Sandbox Code Playgroud)
而不是导入一堆个别类
import java.awt.Panel;
import java.awt.Graphics;
import java.awt.Canvas;
...
Run Code Online (Sandbox Code Playgroud)
在import声明中使用通配符有什么问题?
我正在尝试创建一个与我的图表工具一起使用的管理器类,问题是我使用的工具,对3d和2d图表使用相同的名称,当我尝试添加2d库时导致模糊引用.任何想法如何最好地解决这个问题?
例如,
using tool.2dChartLib;
using tool.3dChartLib;
Run Code Online (Sandbox Code Playgroud)
BorderStyle是这两者的成员
我已经尝试过使用BorderStyle的区域.我想它可以工作,如果我只是参考,tool但那意味着我将有数百tool.class行代替class
我认为这里的大多数C++程序员都同意污染全局命名空间是一个坏主意,但是有时候可以忽略这个规则吗?
例如,我有一个我需要在特定应用程序中使用的类型 - 我应该如此定义它:
mytypes.h
typedef int MY_TYPE;
foo.cpp
MY_TYPE myType;
Run Code Online (Sandbox Code Playgroud)
或使用命名空间:
mytypes.h
namespace ns {
typedef int MY_TYPE;
}
foo.cpp
ns::MY_TYPE myType;
...
using namespace ns;
MY_TYPE myType;
Run Code Online (Sandbox Code Playgroud)
你喜欢哪个?是否有可能使用第一种方法?
c++ ×2
namespaces ×2
c# ×1
c++-faq ×1
import ×1
java ×1
javascript ×1
std ×1
typedef ×1
wildcard ×1