2 richthoffen richthoffen 于 2016.04.14 15:51 提问

c++ virtual const T& Entry(int index) const;
c++

为什么有两个const,分别代表什么
c++ virtual const T& Entry(int index) const;

3个回答

CSDNXIAOD
CSDNXIAOD   2016.04.19 21:00

C++ const int * ; int * const
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

chenqixia
chenqixia   2016.04.14 16:02

第一个const说的是返回值,返回的是一个常量引用,不能修改;
后一个const是表示this指针指向的是const,
表明该函数不会改成员函数的值!该函数可以被常量对象访问(const)。

qq_31597573
qq_31597573   2016.04.14 16:03

第一个const代表返回类型是const类型。为什么要定义为const的?举个例子:一般都是c=a+b;也是说a+b一般作为右值。但是如果a+b的返回类型不为const,那么可能出现a+b=c的情况。这种情况是不符合常理的。
所以有必要声明为const类型。第二个const表示Entry函数体内部,不可以修改成员变量的值。否则会报错。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
unresolved external symbol "protected: virtual struct AFX_MSGMAP const * __thiscall
VC6的MFC基本对话框程序,写了一般在优化是出错了.. 查了好久的资料,才找到的、错误提示如下: --------------------Configuration: McSpider - Win32 Release-------------------- Compiling resources... Compiling... StdAfx.cpp Compiling...
error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl MainWindow::metaObject(
error LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl MainWindow::metaObject(void)const “问题描述:在编译Qt界面文件时候,出现一下报错2>mainwindow.obj : error LNK2001: 无法解析的外部符号 "public: virtual struc
QT手动moc问题:virtual struct QMetaObject const * __thiscall Widget::metaObject
【转自】http://blog.csdn.net/zhenyusoso/article/details/8450906 编写一个简单的给予QT的DEMO程序步骤大致如下: 下面开始编程: A 编写 main.cpp B 编写 hello.h C 编写 hello.cpp D 制作.ui文件,并生成ui_hello.h 打开designer,拖入一个pushButton,一个label
QT无法解析的外部符号"public:virtualstructQMetaObjectconst*__thiscallWidget::metaObject"
查找原因: 1. 是否加上了Q_OBJECT宏? 2. 你的widget里用到signal slot了吧?(也许是后续加的) 3. 类定义在cpp里了? 没有相应的.h文件? 4. 如果以前没信号槽新加的, 那么makefile需要重新生成。 总结原因如下: vs在编译时会产生一系列的命令以控制该.h、.cpp文件的编译过程,并且,以后不会自动修改这些命令。 利用Qt编程时,写好
error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall MainWindow::metaObje
error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall MainWindow::metaObject(void)const " (?metaObject@MainWindow@@UBEPBUQMetaObject@@XZ) VS在LINK时,找不到moc文件,就出现了err
virtual Func() const=0
后面加个const 表明该函数不会改名成员函数的值!该函数可以被常量对象访问(const)。 注意 加了const 与不加const的函数是两个不同的函数! 用个例子说明其区别: #include class A { public: void empty() { std::cout<<"call empty()\n"; } void empt
virtual IsEmpty() const=0中的const有什么用?
http://blog.csdn.net/xuyongbeijing2008/article/details/8584314 后面加个const 表明该函数不会改名成员函数的值!该函数可以被常量对象访问(const)。 注意 加了const 与不加const的函数是两个不同的函数! 用个例子说明其区别: #include class A { public: void empty()
[C++]static, virtual, const关键字
Static成员函数能声明为const吗? 不能。static成员函数是类所有的,可以直接用类名访问,不属于任何一个对象,访问时不会带上this指针。 但是const成员函数,访问时会添加一个隐式的const this*, 二者的用法是冲突矛盾的。 static成员函数能声明为virtual吗? 不能。静态成员函数对于每个类来说只有一份代码,没有多态绑定的必要性。 为什么
error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall ****::metaObj
遇到该问题后,解决方案如下: step1:管理员身份打开cmd step2:进入目标文件夹,输入:moc.exe applincantion.hpp -o moc_application.cpp 生成缺少的moc_application.cpp文件。 steap3:将该文件放入GeneratedFiles文件夹里,并调用,编译通过。
VS2015 + QT 编译出现public: virtual struct QMetaObject const * __thiscall 错误
VS2015 编译QT项目出现错误: 严重性    代码    说明    项目    文件    行    禁止显示状态 错误    LNK2001    无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall TDECTitleWidget::metaObject(void)const " (?metaObjec