c++之头文件基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数

c++之头文件,基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数



前言

学习c++之头文件,基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数


一、头文件,基本输出,输入

1.基本头文件(输出输入流头文件)

#include <iostream>//io流

c++的头文件和c语言的不太一样,但是c++兼容c语言的头文件
对比:

c++中				c语言中
<cstdio>			<stdio.h>
<cstdlib>			<stdlib.h>
<cstring>			<string.h>
在c++中没有.h拓展名,都是在前面加c,最前面都是#include

2.标准输出输入

在c++中都是以流的形式输出和输出
标准输出cout<<
标准输入cin>>
注意箭头方向不同
例:
int main()
{
	int a = 10;
	int b;
	cout << "nice to meet you " <<" "<< a <<endl;
	//双引号里面的会原样输出,输出变量会替换成变量的值,endl是换行符
	cin>>b;
	//从键盘输入一个数
}

二、名字空间namespace定义,嵌套,使用

A.如何定义一个名字空间
namespace 名字空间名
相当于一个空间,限定了作用域。
例:
namespace student
{
	1.定义变量
	int a;
	2.定义常量
	const int a;
	3.定义结构体
	struct student
	{
		int age;
		char name[10];
	}
	4.定义函数
	void show()
	{
		cout<< "你是大帅比!"<< endl;
	}
}



B.嵌套:名字空间可以嵌套
namespace da
{
	int age;
	void show()
	{
		cout<< "你是大帅比!"<<endl;
	}
	namespace xiao
	{
		int id;
	}
}



C.使用:
第一种:全部引用
				using namespace da;
第二种:部分引用
				using namespace::age;
第三种:使用域调用
				int main()
				{
					xiao::show();
				}
补充:引用空间小
				using namespace da::xiao;
				int main()
				{
					在使用的地方外面使用using namespace 名字空间名
				}

三、引用:给变量取别名

1.不使用引用 
void swap(int a,int b)
{
	int temp;
	temp = a;
	a = b;
	b = temp;
}
	上面只是交换了形式参数,实际main函数里面的参数没有改变,
	形式参数只有在调用函数的时候,才会在内存开辟一个空间,
	定义两个临时变量来进行操作;
	而以前c语言的方法是传地址;
2.使用引用
void swap(int& a,int& b)
{
	int temp;
	temp = a;
	a = b;
	b = temp;
}
	在这个demo中,相当于给传进来的第一个参数取别名a,第二个取别名b,
	相当于外号一样,别人叫大帅比是你,别人叫帅哥也是你,
	大帅比是你本来的名字,相当于实际参数,
	帅哥是取的别名,但是实际上还是你

**************************引用和指针的区别(面试必会):
引用必须初始化,指针不一定
引用不占用内存空间,指针占用内存空间
引用一旦初始化就不能修改,指针可以改变指向
有指针的引用,没有引用的指针
有空指针,没有空引用


四、内联函数

内联函数:在返回值类型前面加inline ,例如 inline void show(){}
作用:在c++中,某个函数被频繁的调用,就需要不断的出栈入栈,加inline内联函数,
	 会直接把inline的函数拷贝到调用的地方,就不需要跳转到main函数外面的函数
	 去运行。减少消耗(以空间换时间的做法);
	 1.		void show()
	 		{
				cout<< "你是大帅比"<<endl;
			}
			运行两千万次:大约0.0032.		inline void show()
			{
				cout<< "你是大帅比"<<endl;
			}
			运行两千万次:大约0.0013.如何查看运行时间:time ./a.out
	4.限制:内联函数中不能有循环,不能有switch case
		   行数一般小于10行,大多在5行左右,
		   如果达不到内联的要求,尽管加了inline,也不会按照内联处理
	注意:c++类中,函数默认内联(达不到要求也不会内联)
	 

五、函数重载

定义:在同一作用域下,函数名相同,参数列表不同
参数列表不同分为:
个数不同:
顺序不同;
类型不同;
作用:减少用户的调用复杂性
调用一个函数实现不同效果
减少函数名的数量,防止名字污染
例子;

1.个数不同
	void show(int a)
	void show(int a,int b)
2.顺序不同
	void show(int a,double b)
	void show(double a,int b)
3.类型不同
	void show(int a)
	void show(double a)
注意:返回值类型不同,其他相同不构成重载
		int show(int a)
		void show(int a)
		这个不构成重载
	特殊重载:
	const int show()
		  int show()
		这个构成重载

六、缺省参数

就是在定义函数的时候,给形式参数一个默认值

class person
{
public:
		int add(int a=10,int b=20)
		{
			cout<<a<<b<<endl;
		}
		
}

int main()
{
		add();
		此时,我不给函数传入实参时,系统就会用定义的时候赋的初始值,
		结果打印出来是10,20
}

总结

有点懒不想写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值