相关疑难解决方法(0)

为什么"使用命名空间std"被认为是不好的做法?

我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::coutstd::cin直接代替.

为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?

c++ namespaces using-directives std c++-faq

2486
推荐指数
36
解决办法
78万
查看次数

使用std命名空间

关于std命名空间使用'using'似乎有不同的看法.

有人说使用' using namespace std',其他人说不要,而是先加上与' std::' 一起使用的std函数,而其他人则说使用这样的东西:

using std::string;
using std::cout;
using std::cin;
using std::endl;
using std::vector;
Run Code Online (Sandbox Code Playgroud)

对于要使用的所有std函数.

各自的优点和缺点是什么?

c++ namespaces

105
推荐指数
4
解决办法
9万
查看次数

为什么在C++中将"使用命名空间"包含在头文件中是一个坏主意?

在阅读Bruce Eckel关于命名空间的"Thinking in C++"时,我遇到了以下声明:

但是,您几乎从未在头文件中看到using指令(至少不在范围之外).原因是using指令消除了对该特定命名空间的保护,并且效果持续到当前编译单元结束.如果在头文件中放置using指令(在作用域之外),则意味着在包含此头文件的任何文件中都会发生"名称空间保护"丢失,这通常意味着其他头文件.

您是否愿意用一些简单的例子来帮助我理解上述陈述?

c++ namespaces global-namespace

26
推荐指数
3
解决办法
2万
查看次数

实现中的构造函数与标头

据我所知,构造函数应该在实现文件中定义,但我只能在一个主文件中找到包含类的示例,而不是拆分为 .h 和 .cpp 文件

我需要知道的是我的以下代码是否以可接受的方式分开。

实体.h:

    using namespace std;

class cEntity {
private:
    /*-----------------------------
    ----------Init Methods---------
    -----------------------------*/
    int *X, *Y;
    int *Height, *Width;

public:
    /*-----------------------------
    ----------Constructor----------
    -----------------------------*/
    cEntity (int,int, int, int);

    /*-----------------------------
    ----------Destructor-----------
    -----------------------------*/
    ~cEntity ();

    /*-----------------------------
    ----------Set Methods----------
    -----------------------------*/

    /*Set X,Y Methods*/
    void setX(int x){*X=x;};
    void setY(int y){*Y=y;};
    void setXY(int x, int y){*X=x; *Y=y;};

    /*Set Height, Width Methods*/
    void setHeight(int x){*Height=x;};
    void setWidth(int x){*Width=x;};
    void setDimensions(int x, int y){*Height=x; *Width=y;};

    /*-----------------------------
    ----------Get Methods----------
    -----------------------------*/

    /*Get X,Y Methods*/
    int …
Run Code Online (Sandbox Code Playgroud)

c++ implementation header

5
推荐指数
1
解决办法
1万
查看次数

C++允许我在运行时分配一个数组而不是给出错误

我读到需要在编译时知道数组大小.但是,当我这样做时,它编译并运行得很好,没有任何错误......怎么样?

#include <iostream>

int main() {
    int size;
    std::cout << "Enter size: ";
    std::cin >> size;
    int a[size];

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ variable-length-array

4
推荐指数
1
解决办法
93
查看次数