首页 / C++ / 函数(剩余)--C++复习(6)
函数(剩余)--C++复习(6)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了函数(剩余)--C++复习(6),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1566字,纯文字阅读大概需要3分钟。
内容图文
一、return语句
1.返回非引用类型,则是复制返回值给表达式;
2.返回引用类型,则是返回对象本身;
3.不要返回局部变量的引用,因为函数退出局部变量会消失。
二、静态(static)局部变量
如果某个变量是静态局部变量,则一旦变量被初始化就一直存在,直到程序执行结束。
三、内联函数*
调用函数比求解表达式要慢得多。那么对于较短的程序片段,就适合将其指定为内联函数;这样降低写成函数的额外开销。
1 aaa.h 2 inline int max(int a,int b) 3{ 4return a>b?a:b; 5 }
通常将内联函数放入头文件;如果在头文件中实现了函数(定义了),则即使没有在前面添加inline,该函数也是内联函数。
四、this指针*
每个类成员函数(static成员函数除外)都有一个额外的、隐含的this;在调用函数时形成this,初始化为调用函数的对象的地址。
五、常量成员函数
如果成员函数的参数列表后面加上const关键字,那么这个成员的this指针是指向const对象,该成员函数不能改变被调用对象的值:
1 void setname(string name )const; 23void Person::setname(string name )const4{ 5this->name=name;//被调用对象实际上是Person *this;不能改变它的值 6 }//这种属于编译错误,操作类型为:const std::string*=std::string,报错
六、构造函数
和类名相同;没有返回值(连void也没有);作用是初始化成员变量,当创建一个类对象时就会调用构造函数;
构造函数初始化列表:在构造函数形参后面,冒号和{}之间的部分是初始化列表,如:
1 Per(int pid,string name,int age):_pid(pid),_name(name),_age(age){};
用来直接对成员变量进行初始化。
七、函数重载
这个简单,就是指函数名称相同,但是函数的参数不同或者类型不同,调用时通过参数来判断到底调用了哪个函数。
注意返回值不能构成函数的重载。
八、函数指针***
是指函数的指针而不是指对象的指针。
函数指针指向特定类型,由返回值以及参数列表来确定,如:int (*max)(int ,int); max就是一个函数指针,指向的是一个(返回值是int,参数列表是int,int)的函数。
1 int max(int,int); 2 3int (*max)(int,int); 4 5可以通过typedef来简化函数指针的定义 6 typedef int (*m)(int,int); 7 m a=max;//相当于a是函数指针变量 8 9int r=max(1,2);//通过指针来调用函数,二者等价10int r=a(1,2);
函数指针形参,可以实现回调(没怎么用过):
1 void f(void (*x)(int,int)) 2{ 3 x(1,2); 4} 5 6 7void f2(int a,int b) 8{ 9int x=a+b; 10 }
说明:要想调用f函数,则需要传递像f2这样的一个指针,由于函数名称代表函数指针,那么直接可以把f2函数名称传过去,即f(f2),回调是指f2里面的形参(int a,int b)是f中的(x(1,2))。调用过程:先调用f,f需要函数指针,我们将f2传过去,之后x(1,2)回过头来调用f2,这就是回调。
返回指向函数的指针(没怎么用过)
原文:https://www.cnblogs.com/jiang-021/p/11524982.html
内容总结
以上是互联网集市为您收集整理的函数(剩余)--C++复习(6)全部内容,希望文章能够帮你解决函数(剩余)--C++复习(6)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。