普通函数和类成员函数const重载
2015-03-28 10:34
489 查看
函数参数的const重载只能重载引用型的,因为非引用的const和普通的非const参数一样。
成员函数用const重载总共有三种方式,有三个地方可以写const,要注意const在不同的地方的意义。
成员函数用const重载总共有三种方式,有三个地方可以写const,要注意const在不同的地方的意义。
#include<iostream> #include<vector> #include<string> using namespace std; void fun(const int& i)//fun(10)这能用这个函数 { cout<<"const int"<<endl; } void fun(int& i) { cout<<"int"<<endl; } /*//下面两个只能定义一个,不能重载 void fun(const int i)//所有 { cout<<"const int"<<endl; } void fun(int i) { cout<<"int"<<endl; } */ class A { public: //类内部关于const的三种重载方式 const string &fun(const string &s1) const//只在对象是常对象时调用 { cout<<"321"<<endl; return s1; } const string &fun(const string &s1)//对象不是常对象且传入参数是const时调用 { cout<<"123"<<endl; return s1; } string &fun(string &s1)//对象不是常对象且传入参数不是const时调用 { cout<<"213"<<endl; return s1; } }; int main() { int i=10; const int b=20; fun(10); fun(b); A a,d; const A c; a.fun("1"); c.fun("3"); string s1("123"); d.fun(s1); d.fun(string("123"));//调用时候输出“123”不知道为啥 system("pause"); return 0; }
相关文章推荐
- C++中const成员函数和非const成员函数的重载
- Const 重载解析(const参数重载 和 const成员函数重载)
- 类的const和非const成员函数的重载
- const 参数重载与const 成员函数重载
- C++运算符重载三种形式(成员函数,友元函数,普通函数)详解
- 类的const和非const成员函数的重载
- const 成员函数重载
- 类的const和非const成员函数的重载
- 类的const和非const成员函数的重载
- 类的const和非const成员函数的重载
- 类的const和非const成员函数的重载
- 在 const 和 non-const 重载的成员函数中避免代码重复
- 类的const和非const成员函数的重载
- C++中const成员函数和非const成员函数的重载
- Const 重载解析(const参数重载 和 const成员函数重载)
- C++ 成员函数 const 重载
- 成员函数对象类的const和非const成员函数的重载
- Const 重载解析(const参数重载 和 const成员函数重载)
- Const 重载解析(const参数重载 和 const成员函数重载)
- C++小知识:const成员函数与非const成员函数可以重载