const、引用、函数调用等之间的关系
来源:互联网 发布:168信息数据 编辑:程序博客网 时间:2024/05/17 03:51
#include<iostream>#include<string>using namespace std;string version1(const string & s1,const string & s2);const string & version2(string & s1,const string & s2);const string & version3(string & s1,const string & s2);int main(){ string input; string copy; string result; cout << "Enter a string:"; getline(cin,input); copy = input; cout << "your string as enter:" << input << endl; /* 1.参数input是const的string类型,引用传递而不是值传递,避免增加一个副本,使用的是本身传过去的数 2.实参"***"是const char *类型,与const string & s2不匹配,程序将创建正确类型的临时变量 3.返回类型是string,但不是引用,将创建一个临时的存储单位,效率低 */ result = version1(input,"***"); cout << "your string enhanced:" << result << endl; cout << "your original string:" << input << endl; /* 1.参数input是普通的string类型,引用传递,免增加一个副本,使用的是本身传过去的数,可修改input 2.实参"###"是const char *类型,与const string & s2不匹配,程序将创建正确类型的临时变量 3.返回类型是string的引用,不需要创建一个临时的存储单位,效率高,同时,用const修饰避免返回的 引用直接修改它指向的变量,例如:use(loop).used=10(×)(其中use是函数,loope是结构变量,函数返回结构loop本身,used是loope的成员) */ result = version2(input,"###"); cout << "your string enhanced" << result << endl; cout << "your original string:" << input << endl; cout << "resetting original string.\n"; input = copy; result = version3(input,"@@@"); cout << "your string enhanced" << result << endl; cout << "your original string:" << input << endl; cin.get(); return 0;}string version1(const string & s1, const string & s2){ string temp; temp = s2 + s1 + s2; return temp;}const string & version2(string & s1, const string & s2){ s1 = s2 + s1 + s1 + s2; return s1;}const string & version3(string & s1, const string & s2){ string temp; temp = s2 + s1 + s2; //这里将返回temp的别名,但是temp作用范围是该函数,函数调用后就撤销内存,将会引起程序奔溃 return temp;}
0 0
- const、引用、函数调用等之间的关系
- C++ - const常量与指针和引用之间的关系
- 指针、引用、const常量三者之间的关系
- C++ const限定符之顶层const & 底层const & 指针 & 引用之间的关系
- const成员函数和const对象的调用关系
- 浅析函数之间的调用关系
- Python Class之间函数的调用关系
- 引用和const的关系
- 引用&指针和引用&const的关系
- const成员函数和非const的成员函数之间的调用
- 指针,引用之间的关系
- const 与函数的关系
- C++关于参数为const引用类型的函数调用参数成员函数的一个问题
- [第二节]C++ 引用 函数调用作为左值 用const限定引用 返回堆中变量的引用
- 函数递归调用: 调用者 与 被调用者之间的四种数据传递关系
- FAQ_20 如何查看函数之间调用关系?
- 引用与using之间的关系
- python变量、引用、拷贝之间的关系
- 三种获取网页源码的方法(使用MFC/Socket实现)
- [LeetCode]50. Pow(x, n)&&幂函数
- 自制操作系统2-ubuntu下的工作环境搭建
- cmd for 循环拷贝文件
- SSL1411最小函数值
- const、引用、函数调用等之间的关系
- python实现CSDN下载资源自动评分(selenium+requests)
- Enum 修复findbugs问题记录一则,List想表示不可变集合
- 持久化存储-MySql拓展-Master-Slave
- 第一篇微博
- 统计学习精要 (Elements of Statistical Learning ) 习题 2.2
- VMware Workstation 12 Pro 安装 Ubuntu15
- Spring Bean标签中abstract和parent属性
- OFBIz中build.gradle文件中关键词解释