c++入门(2)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++入门(2),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2376字,纯文字阅读大概需要4分钟。
内容图文
![c++入门(2)](/upload/InfoBanner/zyjiaocheng/727/c28a232c2c2842d6a362982938cacfd2.jpg)
五、函数重载
C++允许两个重名函数同时存在,但他们的参数列表不能完全相同,哪怕返回值不同也不可以(与函数的返回值无关,看的是函数的参数)
#include <iostream>
using namespace std;
int Add(int left, int right)
{
return left + right;
}
double Add(double left, double right)
{
return left + right;
}
long Add(long left, long right)
{
return left + right;
}
int main()
{
printf("%d\n",Add(10, 20));
printf("%f\n",Add(10.0, 20.0));
printf("%ld\n",Add(10L, 20L));
system("pause");
return 0;
}
1.名字修饰
在C语言中,名字修饰只是在函数名前加下划线,所以只要函数名相同,就会导致冲突。
在C++中名字修饰是由“?函数名@域名1@域名2...@@参数列表@z”的格式构成的,包含:
(1)、函数名
(2)、所在域
(3)、参数列表
所以c++中,以上三个必须完全相同,才会出现冲突,这就是函数重载原理
2.extern "C"
在函数前加 extern "C",意思是告诉编译器,将该函数按照C语言规则来编译。
六、引用
1、引用是给一个变量起别名,两个名字都是一个变量,所以操作谁从结果上看一样的
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int& ra = a;//<====定义引用类型
printf("%p\n", &a);
printf("%p\n", &ra);
printf("%d\n", a);
printf("%d\n", ra);
system("pause");
return 0;
}
2、引用是代替指针完成跨栈操作的,所以它具备指针跨栈的一切特点
3、引用的底层实现实际是指针
特点:
- 引用在定义时必须初始化 (int a = 10 ; (int &ra; 编译时会出错 ) , 应改成int &ra = a;)
- 一个变量可以有多个引用
- 一个引用一旦引用了一个变量,就不能在引用其他变量了
4、常引用
const int a = 10;
int& ra = a; //编译时会报错
改成下面这种写法:
const int a = 10;
const int& ra = a;
七、内联函数
调用时不创建新栈而直接在调用处展开的函数叫内联函数,关键字inline
内联函数是一个对编译器的建议,如果函数过于复杂,编译器会不接受你的建议,就把它当成普通的函数。
inline函数可以代替带参宏。
八、auto关键字(c++11)
auto是一个类型修饰符,它会根据你给的变量初始化的值的类型来决定自己是什么类型
auto定义的变量必须进行初始化,否则不知道auto是什么类型
auto可以连续定义变量,类型由第一个定义的变量决定,后续不能违背这个类型,但是可以定义对应类型的指针和引用
auto不能推到的场景
九、基于范围的for循环(c++11)
1、用范围for遍历数组 :
for循环后的括号由冒号“ :”分为两部分:第一部分是范围内用于迭代的变量,第二部分则表示被迭代的范围。(要改变数组的值必须用引用)
void TestFor()
{
int array[] = { 1, 2, 3, 4, 5 };
for(auto& e : array)
? ? e *= 2;
for(auto e : array)
? ? cout << e << " ";
return 0; }
2、使用条件
(1)、for循环迭代的范围必须是确定的。
(2)、迭代的对象要实现++和==的操作。
内容总结
以上是互联网集市为您收集整理的c++入门(2)全部内容,希望文章能够帮你解决c++入门(2)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。