C++入门(1)——命名空间,缺省函数,函数重载,引用

C++入门(1)——命名空间,缺省函数,函数重载,引用,第1张

C++入门(1)——命名空间,缺省函数,函数重载,引用
  • 命名空间
    • 命名空间的定义
    • 命名空间的使用
      • 加命名空间名称及作用域限定符
      • 使用using将命名空间中某个成员引入
      • 使用using namespace 命名空间名称 引入
  • C++输入输出
  • 缺省函数
    • 缺省函数的概念
    • 缺省函数的概念
      • 半缺省函数
      • 全缺省函数
  • 函数重载
    • 函数重载的概念
      • 参数类型不同
      • 参数个数不同
      • 参数类型顺序不同
  • 引用
    • 引用概念
    • 引用特性
    • 常引用
    • 使用场景
      • 做参数
      • 做返回值
    • 引用和指针的区别

命名空间 命名空间的定义

命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染。
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。

namespace bit
{
	int rand = 10;
	int x = 0;
}

命名空间也可以嵌套

namespace N1
{
	int a;
	int b;
	int Add(int left, int right)
	{
		return left + right;
	}
	namespace N2
	{
		int c;
		int d;
		int Sub(int left, int right)
		{
			return left - right;
		}
	}
}
命名空间的使用

命名空间有三种使用方式

加命名空间名称及作用域限定符
int main()
{
	printf("%d\n", N::a);
	return 0;
}
使用using将命名空间中某个成员引入
using N::b;
int main()
{
	printf("%d\n", N::a);
	printf("%d\n", b);
	return 0;
}
使用using namespace 命名空间名称 引入
using namespce N;
int main()
{
	printf("%d\n", N::a);
	printf("%d\n", b);
	Add(10, 20);
	return 0;
}
C++输入输出
#include
using namespace std;
int main()
{
	cout<<"Hello world!!!"<
#include 
using namespace std;
int main()
{
int a;
double b;
char c;
// 可以自动识别变量的类型
cin>>a;
cin>>b>>c;
cout<
  1. 使用cout标准输
  2. 出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std。
  3. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含头文件中。
  4. <<是流插入运算符,>>是流提取运算符。
  5. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
缺省函数 缺省函数的概念

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。

void Test(int a = 0)
{
cout<
缺省函数的概念 半缺省函数
void Func(int a, int b = 10, int c = 20)
{
	cout<<"a = "<
  1. 半缺省参数必须从右往左依次来给出,不能间隔着给
  2. 缺省参数不能在函数声明和定义中同时出现
全缺省函数

void Func(int a = 10, int b = 20, int c = 30)
{
	cout<<"a = "<
函数重载 函数重载的概念

函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。

参数类型不同
int Add(int left, int right)
{
	cout << "int Add(int left, int right)" << endl;
	return left + right;
}
double Add(double left, double right)
{
	cout << "double Add(double left, double right)" << endl;
	return left + right;
}
参数个数不同
void f()
{
	cout << "f()" << endl;
}
void f(int a)
{
	cout << "f(int a)" << endl;
}
参数类型顺序不同
void f(int a, char b)
{
	cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{
	cout << "f(char b, int a)" << endl;
}
引用 引用概念

引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。

void TestRef()
{
	int a = 10;
	int& ra = a;
	printf("%p\n", &a);
	printf("%p\n", &ra);
}
引用特性
  1. 引用在定义时必须初始化
  2. 一个变量可以有多个引用
  3. 引用一旦引用一个实体,再不能引用其他实体
void TestRef()
{
	int a = 10;
	// int& ra; // Error
	int& ra = a;
	int& rra = a;
	printf("%p %p %p\n", &a, &ra, &rra);
}
常引用
void TestConstRef()
{
	const int a = 10;
	//int& ra = a; // 该语句编译时会出错,a为常量
	const int& ra = a;
	// int& b = 10; // 该语句编译时会出错,b为常量
	const int& b = 10;
	double d = 12.34;
	//int& rd = d; // 该语句编译时会出错,类型不同
	const int& rd = d;
}
使用场景 做参数
void Swap(int& left, int& right)
{
	int temp = left;
	left = right;
	right = temp;
}
做返回值
int& Count()
{
	static in
	n++;
	// ...
	return n;
}
引用和指针的区别

在语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间。

int main()
{
	int a = 10;
	int& ra = a;
	cout<<"&a = "<<&a<
						

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/2990712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)