草庐IT

弱引用

全部标签

c++ - 在 C++ 中返回对静态局部变量的引用

这个问题只是为了让我更好地理解C++中的静态变量。我想我可以在C++中返回对局部变量的引用,如果它被声明为静态的话,因为该变量应该在函数返回后继续存在。为什么这行不通?#includechar*illegal(){char*word="hello";returnword;}char*alsoNotLegal(){staticchar*word="whyamInotlegal?";returnword;}intmain(){//Iknowthisisillegal//char*ill=illegal();//ill[0]='5';//puts(ill);//butwhyisthis?It

c++ - 不转发通用引用会出现什么样的问题?

据我所知,在C++11中,通用引用应该始终与std::forward一起使用,但我不确定如果会出现什么样的问题std::forward未使用。templatevoidf(T&&x);{//Whatifxisusedwithoutstd::forward(x)?}您能否举例说明这种情况下可能出现的问题? 最佳答案 没有这样的规则总是将std::forward与通用引用一起使用。相反,在具有通用引用的函数中到处使用std::forward可能很危险。看看下面的例子:templateautomake_pair(T&&t){returnst

c++ - 为什么复制构造函数的参数是引用而不是指针?

为什么拷贝构造函数的参数是引用而不是指针?为什么我们不能使用指针来代替? 最佳答案 有很多原因:引用不能为NULL。好的,可以创建NULL引用,但也可以转换std::vector*进入std::vector*.这并不意味着这样的转换具有定义的行为。创建NULL引用也不会。指针设置为NULL时具有定义的行为;引用没有。因此,引用总是指的是实际对象。变量和临时变量不能隐式转换为指向其类型的指针。出于显而易见的原因。我们不希望指向临时对象的指针到处乱跑,这就是标准明确禁止这样做的原因(至少当编译器可以告诉您正在这样做时)。但是我们可以引用

c++ - std::vector 元素中的常量引用

这只是我的编译器还是禁止在std::vector元素中使用cons引用。考虑以下结构:structY{constint&x;Y(constint&p_x):x(p_x){}};现在,当我尝试将此类对象推到vector上时:std::vectoryv;intx=5;Yy(x);yv.push_back(y);我收到编译器错误:“错误:非静态引用成员‘constint&Y::x’,不能使用默认赋值运算符”。复制ctor还不够吗? 最佳答案 vector元素必须是可赋值的。来自C++标准的23.2.4类模板vector部分:...thes

c++ - 好的在线 C++ 语法引用?

您知道准确简洁的在线C++语法引用吗?请提供链接... 最佳答案 cppreference.com微软特定reference. 关于c++-好的在线C++语法引用?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1013375/

【C++】拷贝构造函数中的形参是const引用类型的,为何需要引用且为const引用?

根本原因在c++中,传值时就是形参是实参的一份拷贝,传引用时形参和实参是一个东西。返回类型也一样,返回值则是拷贝一份返回,返回引用则返回同一个东西(注意不要返回局部对象的引用,函数退出时对应的空间已被释放)。直接原因由于(根本原因)形参是实参的一份拷贝,如果直接传递值给拷贝构造函数而不是传引用,那么形参对象会拷贝实参对象,这个拷贝过程又调用拷贝构造函数(第二次),在第二次调用拷贝构造函数时,形参对象继续拷贝实参对象,继续调用拷贝构造函数(第三次)…陷入死循环。因此需要传引用给拷贝构造函数。为何拷贝构造函数要用const引用?在这里没有太复杂的原因,就是为了表明拷贝构造函数中没有对传递进来的对象

c++ - 谁能解释一下这个 C++ 引用用法

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Globalconststring&smellsbadtome,isittrulysafe?我无意中发现了以下代码并想知道它的优点std::stringconst&thestring("XYZ");事实是它正在构造对象并通过引用引用它。见惯了std::stringconsttheString("XYZ");想知道有什么区别。我很高兴该对象不会提前销毁,因为该对象与引用一起存在于堆栈中。

c++ - 在 C++ 中什么时候使用函数引用而不是函数指针?

这个问题在这里已经有了答案:FunctionReferences(5个答案)关闭8年前。什么时候使用函数引用如void(&fr)()=foo;fr();代替函数指针如void(*fp)()=&foo;fp();有什么函数指针不能做而函数引用可以做的事吗?

c++0x标准库引用手册

多年来,我一直在使用C++编写代码,最近听说C++标准即将发布新修订版。我研究了标准草案,发现有很多新东西可以使我的编程更容易。所以我想在新标准出来之前习惯它。但是,如果没有像样的引用手册,就很难使用新的标准库进行编码。我用谷歌搜索,只找到了一些页面,例如Wikipedia'sC++0xpage不是引用手册。有人知道任何C++0x标准库引用手册吗?我正在寻找类似于MSDN的StandardC++LibraryReference的东西. 最佳答案 在wiki-basedcppreference.com上获得C++0x的新特性方面取得了

【C++初阶】二、入门知识讲解(引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr)

=========================================================================相关代码gitee自取:C语言学习日记:加油努力(gitee.com) =========================================================================接上期:【C++初阶】一、入门知识讲解(C++关键字、命名空间、C++输入&输出、缺省参数、函数重载)-CSDN博客 ===========================================================