通过函数名后加const重载的函数如何区分调用

参考网址:http://bbs.csdn.net/topics/391833689?page=1

在一般情况下默认调用不带const的函数。

想要调带const函数,解决办法:

1. 将调用发生的函数加const

2. 如果重载函数在某类内,将类实例(或this)做强制转换(const): const_cast<const A*>(this)->func();

时间: 2024-12-28 16:31:59

通过函数名后加const重载的函数如何区分调用的相关文章

C++函数名后加上const

知识点补充: 通过把类成员函数声明为const   以表明它们不修改类对象. 任何不会修改数据成员的函数都应该声明为const类型.如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这样做的好处是提高程序了的健壮性. class MyClass { public: int GetData(int Id,int Type,char* pData)const; } 参考http://blog.csdn.net/beyondhaven/artic

[Reprint]C++函数前和函数后加const修饰符区别

c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostream> 02   03 using namespace std; 04   05 // Ahthor:  过往记忆 06 // E-mail:  [email protected] 07 // Blog:    http://www.iteblog.com 08 // 转载请注明出处 09   10

C++ 成员函数前和函数后加const修饰符区别

博客转载自: https://www.iteblog.com/archives/214.html 分析以下一段程序,阐述成员函数后缀const 和 成员函数前const 的作用 #include<iostream> using namespace std; class TestClass { public: size_t length() const; const char* getPContent(); void setLengthValid(bool isLengthValid); pri

为什么函数声明后可以不加分号而函数表达式后要加分号呢?

JavaScript:为什么函数声明后可以不加分号而函数表达式后要加分号呢?是就是这个硬性规定的,还是有什么机制原因呢 function functionName(arg0,arg1,arg2){ //函数声明} var functionName=function(arg0,arg1,arg2){ //函数表达式}; //注意分号

JS 中函数名后面加与不加括号的区别

1 a.onmouseover = fn1; 2 a.onmouseout = fn2; 3 function fn1(){ 4 div.className = "erweima show"; 5 } 6 function fn2(){ 7 div.className = "erweima hide"; 8 } 只要调用函数进行执行,都必须加括号. 函数是一个对象,函数名是指向这个对象的指针. 函数名后面加上括号就表示立即调用执行这个函数里面的代码. 使用不带圆括号

常量函数(函数后加const)

const用在成员函数后 主要是针对类的const 对象 如: class Text{ public:     void printconst(void)const{cout<<"hello"<<endl;}     void print(void){cout<<"hello"<<endl;} private:     int k; }; const Text a; //上面定义了类Text的一常量对象 int mai

MFC中函数名前加 :: 原因

在开发MFC之前,开发的是以AFx(Application Frameworks,x是没有什么意义的)开头的一些函数.但是那个时候开发的函数并没有进行封装,但是有很多很有用的函数.最后AFx开发失败,于是就转而开发MFC.但是对于在AFx中一些有用的函数,希望能够放在里面用.于是就放在最外层.但是在里面的类中也有一些和它同名的函数.于是如果想调用最外层的函数,就需要在函数名加两个冒号来进行识别.--外面的也就是全局的.如果不加,就是调用里层的函数.

C++中基于成员函数是否是const重载成员函数

C++pimer中文版第四版 378页 基于const的重载 如果我们要在一个类的成员函数中定义两个函数签名完全一样的成员函数,比如display,那么可以基于是否是const成员函数来重载.比如: //非const对象可以使用可以使用任意成员,但是下面这个匹配的更好,所以一般用这个成员函数 Screen& display(ostream& os){ os << "something"; return *this;//返回的是普通引用 Screen&

类或方法名后加&lt;&gt;

声明类型为泛型. 说明传递的参数为泛型,而不仅仅是一种类型. public void aa<T>(T a) { Console.WriteLine(a); } 调用时可写: this.aa<int>(5); this.aa(string)("aaaa"); C#变量类型后面加?是什么意思? 例如:int? id = null;string? name = null;还有如: public int?[] InsertTest(int? parentId, stri