草庐IT

const_object

全部标签

c++ - 如果 C++ 类同时包含 const 引用和非 const 引用复制构造函数怎么办?

片段1:#includeusingnamespacestd;classC{public:C(){}C(constC&c){cout输出:调用的const复制构造函数片段2:#includeusingnamespacestd;classC{public:C(){}C(constC&c){cout输出:调用了非常量复制构造函数片段3:#includeusingnamespacestd;classC{public:C(){}C(constC&c){cout输出:错误:复制构造函数必须通过引用传递它的第一个参数我很困惑:对于片段2,为什么此处的非常量复制构造函数有效?为什么调用非const复制

c++ - 奇怪的运算符重载, "operator T& () const noexcept { return *_ptr; }"

我研究了一下,operator函数的格式是(returnvalue)operator[space]op(arguments){implementation}但是,在std::reference_wrapper实现中,有一个运算符重载函数声明为operatorT&()constnoexcept{return*_ptr;。这个运算符和T&operator()constnoexcept{return*_ptr;不同吗?}?.如果两者不同,那么第一个有什么用? 最佳答案 运算符T&()constnoexcept;是一个user-define

c++ - "const char*"类型的值不能用于初始化 "char *"类型的实体

我有这样的代码,但我一直收到此错误:Avalueoftype"constchar*"cannotbeusedtoinitializeanentityoftype"char*"这是怎么回事?我已经阅读了以下主题,但无法看到我的答案的任何结果,因为它们都是从char到char*或char*到char:Valuetypeconstcharcannotbeusedtoinitializeanentityoftypechar*Valueoftypechar*cannotbeusedtoinitializeanentityoftype"char"#include;usingnamespacestd

【3D目标检测】3D Object Detection for Autonomous Driving: A Survey

目录概述细节背景常用数据集及其评价指标基于RGB图像的算法基于点云的算法基于RGB图像与点云模态融合的算法概述这是一篇21年的综述,介绍了3D目标检测背景、传感器以及基于传感器的算法分类及其特点。细节背景3D目标检测的地位:是无人驾驶中感知模块的核心基础3D目标检测的主要问题:目标检测的核心是定位+分类,分类的问题其实不大,限制算法性能的最主要因素还是定位误差。3D目标检测中的传感器:3D目标检测中使用的传感器主要可以分为两类,一类是无源传感器(passivesensors)另一类是有源传感器(activesensors)。这两类中用的最多的就是单目相机和激光雷达了。单目相机:优点:便宜且适用

c++ - 无法在声明时使用初始化列表初始化 const char*/string 数组的 vector

最初我开始尝试在声明时使用初始化列表初始化constchar*[3]的vectorvectorv={{"a","b","c"}};这给出了错误matrixmustbeinitializedwithabrace-enclosedinitializer我觉得可能是constchar*的缘故,虽然看起来很奇怪,改成了字符串vectorv={{"a","b","c"}};但是错误依然存在。我尝试了几种牙套组合都无济于事。是否真的可以在声明时使用初始化列表初始化此结构? 最佳答案 编译失败因为std::vectorrequiresitsTto

C++ 类作为 Objective-C 类的实例变量

我需要混合使用Objective-C和C++。我想将所有C++内容隐藏在一个类中,而将所有其他内容保留为纯Objective-C。问题是我想要一些C++类作为实例变量。这意味着它们必须在头文件中提及,它被其他类包含并且C++开始传播到整个应用程序。到目前为止,我能想到的最佳解决方案如下所示:#ifdef__cplusplus#import"cppheader.h"#endif@interfaceFoo:NSObject{idregularObjectiveCProperty;#ifdef__cplusplusCPPClasscppStuff;#endif}@end这行得通。实现文件有一

c++ - Objective-C 和 C++ 之间的转换比较

好的,所以这可能是一个学术问题。谁能告诉我C++的转换运算符是否/如何转换为Objective-C...或者它们如何/为什么不需要?我已经脱离C++的圈子几年了,似乎每次我转身他们都会添加一些新的关键字。我最近了解到C++的各种转换运算符reinterpret_cast、static_cast、dynamic_cast和const_cast。我不太清楚何时会出现需要使用所有这些类型的强制转换的情况。我现在已经使用Objective-C一两年了,对它感觉相当舒服。(在那之前主要是C人)。我试图理解为什么C++似乎具有所有这些复杂性。或者换句话说,Objective-C缺少什么它似乎没有(

c++ - 带有 "const"关键字的 C 类型转换

我通常在C/C++代码中使用C类型转换。我的问题是,在转换类型中添加“const”关键字对结果有什么意义吗?比如我可以想出几个场景:constmy_struct*func1(){my_struct*my_ptr=newmy_struct;//modifymembervariablesreturn(constmy_struct*)my_ptr;//returnmy_instance;}在这个函数中,函数构造了一个结构的新实例,并将其转换为一个常量指针,因此调用者将无法进一步修改其内部状态,除非删除它。“const”转换是必需的、推荐的还是根本不需要的,因为任一return语句都有效。在这

c++ - 使用 const 参数调用 map::find

我有一个对象:mapcollection;我想调用map::find函数,但我的键值为const,如以下代码,无法编译:constA*a=whatever();collection.find(a);以下代码有效并执行与查找操作等效的操作:constA*a=whatever();map::iteratoriter;for(iter=collection.begin();iter!=collection.end();++iter)if(iter->first==a)break;//iternowcontainstheresultormap::end(justlikemap::find)但它

c++ - 被 const 逼入绝境:std::map::find() const 重载

考虑以下片段:#includeclassC{public:C(){}constint&f(constint&x)const{//Error:cannotcastconstint*toint*constreturnmyMap.find(&x)->second;//Withaconst_castworks://returnmyMap.find(const_cast(&x))->second;}std::mapmyMap;};int_tmain(intargc,_TCHAR*argv[]){intx=0;Cc;c.f(x);return0;}f()中的错误是由map的find()的const