c++ - 为什么 gcc 不将类声明编译为引用参数?

标签 c++ xcode gcc reference arguments

这在 Visual studio 中编译得很好,但为什么在 XCode 中却不行?

class A()
{};

someMethod(A& a);

someMethod(A()); //error: no matching function call in XCode only :(  

这是不好的形式吗? 每次都必须写以下内容似乎很烦人:

A a;
someMethod(a);  //successful compile on Xcode

我错过了什么吗?我经验不足,所以感谢您的帮助!

最佳答案

您不能将临时引用绑定(bind)到非常量引用。如果您将函数更改为采用 const 引用,它将起作用:

someMethod(const A& a);

此外,

A a();

不声明局部变量。它声明了一个名为 a 的函数,该函数不带参数并返回一个 A 类型的对象。你的意思是:

A a;

关于c++ - 为什么 gcc 不将类声明编译为引用参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530624/

相关文章:

c++ - 如果它的对象在多个线程中运行,我们是否需要锁定类成员函数

c++ - strcmp 从 ‘char’ 到 ‘const char*’ 的转换

html - xcode 中的 html 警报事件

gcc - `-fpic` 和 `-fPIC` gcc 参数有什么区别?

C程序找不到一些包含的头文件,尽管它们存在

c++ - 使用 MySQL c++ 连接器从 c++ 代码访问 memSQL

c++ - C++服务的自动延迟启动

xcode - Xcode:查看项目中的所有TODO

ios - "Missing required architecture arm64 in file..."Xcode 6 beta 在 ios 7 设备上运行时

c - 32 位和 64 位之间的无符号减去无符号差