本文主要是介绍C++心决之命名空间、重载函数和引用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1. C++关键字(C++98)
2. 命名空间
2.1 命名空间定义
2.2 命名空间使用
3. C++输入&输出
4. 缺省参数
4.1 缺省参数概念
4.2 缺省参数分类
5. 函数重载
5.1 函数重载概念
5.2 C++支持函数重载的原理--名字修饰(name Mangling)
6. 引用
6.1 引用概念
6.2 引用特性
6.3 常引用
6.4 使用场景
6.5 传值、传引用效率比较
6.6 引用和指针的区别
1. C++关键字(C++98)
2. 命名空间
以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的
2.1 命名空间定义
2.2 命名空间使用
namespace bit
{// 命名空间中可以定义变量/函数/类型int a = 0;int b = 1;int Add(int left, int right){return left + right;
比特就业课
命名空间的使用有三种方式:
加命名空间名称及作用域限定符
使用using将命名空间中某个成员引入
使用using namespace 命名空间名称 引入
3. C++输入&输出
新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物,}struct Node{struct Node* next;int val;};
}
int main()
{// 编译报错:error C2065: “a”: 未声明的标识符printf("%d\n", a);
return 0;
}
int main()
{printf("%d\n", N::a);return 0;
}
using N::b;
int main()
{printf("%d\n", N::a);printf("%d\n", b);return 0;
}
using namespce N;
int main()
{printf("%d\n", N::a);printf("%d\n", b);Add(10, 20);return 0;
}
3. C++输入&输出
#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl;
return 0;
}
- 1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件
- 以及按命名空间使用方法使用std。
- 2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含<
- iostream >头文件中。
- 3. <<是流插入运算符,>>是流提取运算符。
- 4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。
- C++的输入输出可以自动识别变量类型。
- 5. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识,
- 这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有
- 一个章节更深入的学习IO流用法及原理。
#include <iostream>
using namespace std;
int main()
{int a;double b;char c;// 可以自动识别变量的类型cin>>a;cin>>b>>c;cout<<a<<endl;cout<<b<<" "<<c<<endl;return 0;
}
4. 缺省参数
4.1 缺省参数概念
void Func(int a = 0)
{cout<<a<<endl;
}
int main()
{Func(); // 没有传参时,使用参数的默认值Func(10); // 传参时,使用指定的实参
return 0;
}
4.2 缺省参数分类
void Func(int a = 10, int b = 20, int c = 30){cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;cout<<"c = "<<c<<endl;}
void Func(int a, int b = 10, int c = 20){cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;cout<<"c = "<<c<<endl;}
5. 函数重载
5.1 函数重载概念
5.2 C++支持函数重载的原理--名字修饰(name Mangling)
6. 引用
6.1 引用概念
void TestRef()
{int a = 10;int& ra = a;//<====定义引用类型printf("%p\n", &a);printf("%p\n", &ra);
}
6.2 引用特性
6.3 常引用
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;
}
6.4 使用场景
void Swap(int& left, int& right)
{int temp = left;left = right;right = temp;
}
int& Count()
{static int n = 0;n++;// ...return n;
}
6.5 传值、传引用效率比较
6.6 引用和指针的区别
这篇关于C++心决之命名空间、重载函数和引用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!