reference相关内容

将可修改的参数传递给c ++函数

提供时,我想向函数传递一个可修改的参数,我应该选择什么:通过指针传递或通过引用传递? bool GetFoo(Foo& whereToPlaceResult); bool GetFoo(Foo * whereToPlaceResult); 我问这是因为我一直认为它是通过引用(1)传递参数的最佳实践,但是在检查了一些本地代码数据库后,我得出一个结论,最常见的方法是(2)。此外,男人自己 ..
发布时间:2016-10-14 11:02:12 C/C++开发

为什么一个c ++引用被认为比一个指针更安全?

当c ++编译器为引用和指针生成非常类似的汇编代码时,为什么使用引用与指针相比更喜欢(并且更安全)? C ++中的指针变量和引用变量之间的差异,讨论它们之间的差异。 EDIT-1: 我正在查看g ++为这个小程序生成的汇编代码: int main(int argc,char * argv []) { int a; int& ra = a; int * pa = ..
发布时间:2016-10-14 11:01:44 C/C++开发

为什么在C ++ 11的开发过程中变量的定义改变了?

n3035说: 一个变量是由对象的声明引入的。变量的名称表示对象。 n3090说: 一个变量由除非静态数据成员或对象的引用的声明引入。 我不知道是什么激发了这个变化。 解决方案 更改是响应 CWG缺陷633 。与此相关的更改列表可以在 n2993 中找到。 : 这些更改的目的是将“variable”的含义扩展为包含命名对象和引用,始终如一。 ..
发布时间:2016-10-14 11:01:09 C/C++开发

两个相互引用的类

我是C ++的新手,所以这个问题可能是基本的: 我有两个需要引用的类。每个都在自己的头文件中,#include是对方的头文件。当我尝试编译我得到的错误“ISO C ++禁止声明'Foo'没有类型”为一个类。如果我切换的东西,所以相反的标头被解析,我得到与其他类相同的错误。 在C ++中有可能有两个类,需要引用每个其他? 更多细节:我有一个“App”类和一个“Window”类。应用 ..
发布时间:2016-10-14 10:57:43 C/C++开发

什么意思?在c ++?

我想知道& class1& class1 :: instance要做的事 } 解决方案 这意味着你的方法返回一个引用到一个method1对象。引用就像一个指针,它引用对象而不是它的副本,但是与指针的区别是引用: 永远不会未定义/ NULL 您不能与他们进行指针运算 所以他们是一种光,更安全的指针版本。 ..
发布时间:2016-10-14 10:40:10 C/C++开发

常量引用的文字初始化

以下代码在C ++中如何工作?是逻辑的吗? const int& ref = 9; const int& another_ref = ref + 6; 为什么当非const引用不允许时,C ++允许const引用的文本初始化?例如: const int days_of_week = 7; int& dof = days_of_week; //错误:对con ..
发布时间:2016-10-14 10:36:31 C/C++开发

通过取消引用NULL指针来分配引用

int& fun() { int * temp = NULL; return * temp; } 在上面的方法中,我试图做一个NULL指针的解引用。当我调用这个函数它不给出异常。我发现当返回类型是通过引用它不给出异常,如果它是通过值然后它。即使当NULL指针的解引用被赋值给引用(如下面的行)时,也不会给出。 int * temp = NULL: int& te ..
发布时间:2016-10-14 10:26:55 C/C++开发

如何在Java中使用等效的C ++引用参数?

假设我在C ++中有这个: void test(int& i,int& j) { ++ i; ++ j; } 这些值在函数内部改变,然后在外部使用。我怎么能写一个在Java中做同样的代码?我想象我可以返回一个封装这两个值的类,但是这似乎很繁琐。 解决方案 Java没有等价的C ++引用。使这个工作的唯一方法是将值封装在另一个类中,并交换类中的值。 ..
发布时间:2016-10-14 10:22:33 Java开发

什么是返回类型的赋值运算符?

我刚刚开始C ++。除了我对返回类型的赋值和取消引用运算符感到困惑之外,所有都很好。我跟着这本书C ++ Primer。在各种情况下,作者说返回类型的赋值操作符是指左手操作数的类型,但后来,他说返回类型是左手操作数的类型。我已经参考C ++ 11标准秒。 5.17,其中返回类型被描述为“左值引用左手操作数”。 同样,我不知道dereference是否返回指向的对象,对对象的引用。 这些 ..
发布时间:2016-10-14 10:21:09 C/C++开发

为什么操作符重载不允许指针工作?

根据此答案下的注释,引入引用主要是为了支持运算符重载引用Bjarne Stroustrup: 引用主要是 操作符重载。 C 将每个函数参数传递给 值,并且通过 传递对象的效率低或者 不合适,用户可以传递一个 指针。这个策略不工作 使用了操作符重载。在 的情况下,符号的便利是 必要的,所以如果对象是大的,用户不能是 预期插入 操作符的地址。 这意味着操作符重载不能使 ..
发布时间:2016-10-13 11:42:40 C/C++开发

包含引用的STL映射不编译

以下: std :: map测试; 给出: code>错误C2101:常量 上的'&' std :: map测试; 提供 错误C2528:'_First':引用的指针是非法的 不能包含键值的引用,因为它需要有时实例化类,并且不能在没有对象的情况 ..
发布时间:2016-10-13 11:25:27 C/C++开发

为什么不能在C ++中的STL映射中存储引用?

我强调引用不是指针,而是对象的别名。但是,我仍然不明白这对于我来说意味着什么是一个程序员,即什么是引用下面? 我认为最好的方式来理解这一点是为了理解为什么我不能在地图中存储引用。 我知道我需要停止思考引用作为指针的句法su,只是不确定如何:/ 解决方案 他们的方式我明白了,引用被实现为指针下面。你不能将它们存储在地图中的原因是纯粹的语义;您必须在创建引用时对其进行初始化,并且以 ..
发布时间:2016-10-13 11:08:38 C/C++开发