c++ - 程序运行,但 Eclipse 调试器挂起

标签 c++ eclipse

程序是这样的:

class A {
    const A& a;
public:
    A(const A& a) : a(a) {}
};

int main(int argc, char** argv) {

    A a(a);

}

程序编译运行。但是,有时 Eclipse 调试器会卡住。注释掉 A a(a) 行可以解决问题。

A a(a) 行中是否存在危险?

最佳答案

这是无限递归,显然A类的构造函数在一次又一次地调用自己。 如果你使用 gcc,你会看到这样的警告:

warning: variable 'a' is uninitialized when used within its own
  initialization [-Wuninitialized]
A a(a);

就像你在调用这个函数:

void assign(int& a){
    assign(a);
}
int main(){
    int a;
    assign(a);
    return 0;
}

没有编译错误,是逻辑错误

关于c++ - 程序运行,但 Eclipse 调试器挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48570127/

相关文章:

C++ std::string 追加覆盖而不是追加

c++ - 虚函数中的类转换 C++

java - 我有一个 Java Applet 在 Eclipse 中工作,但不能作为嵌入式 applet 工作

java - Tomcat 服务器通过 Eclipse 运行,但我的应用程序主页抛出 404 错误

eclipse - XobotOS 的构建问题

c++ - buffer什么时候刷新

c++ - 将元素移出关联容器

c++ - 函数指针需要和号吗

java - Subclipse 每当使用命令行 svn 时都会删除它的钥匙串(keychain)访问

eclipse - 即使安装 JBOSS 工具后,Wildfly 服务器也未在 Eclipse 中列出