c++
2018-03-17 21:06
85 查看
1.c++的命名域
名字空间域是随标准c++而引入的。它相当于一个更加灵活的文件域(全局域),可以用花括弧把文件的一部分括起来,并以关键字namespace开头给它起一个名字
例:namespace name1{
int a=0;}
namespace name2{ int a=1;} 标准c++库中的所有组件都是在一个被称为std的名字空间中声明定义的,在采用标准c++的平台上使用标准c++库中的组件,只要写一个using指示符:
using namespace std;
就可以直接使用标准c++库中的所有成员;或者std::成员的方式使用c++库里的成员。(::是作用域解析符)
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
namespace my//创建一个为my的名字空间
{
int a = 100;
}
namespace you//创建一个为you的名字空间
{
int a = 90;
}
int a = 80;//存在于std中
void main()
{
int a = 70;
printf("%d %d %d %d\n", a, ::a, my::a, you::a);//(::a)没有指明命名域则为全局命名域中
system("pause");
return;
}
打印结果:70 80 100 90
也可以修改命名域中的值
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
namespace my//创建一个为my的名字空间
{
int a = 100;
}
namespace you//创建一个为you的名字空间中创建一个为my1的名字空间
{
namespace my1
{
int a = 90;
}
}
void main()
{
my::a = 10;
you::my1::a = 9;
std::cout << my::a << you::my1::a << endl;
system("pause");
return;
}
打印结果:10 9
cout是标准输出流对象,<<是输出操作符
cout是标准输入流对象,>>是输出操作符
endl是换行操作符;
他们都属于c++标准库,所以都在std的名字空间里面
2.c++重载函数
什么是重载函数:在同一作用域内,一组函数的函数名相同,参数列表不同,返回值可以相同也可以不同。
使用重载函数需要满足以下任意条件
参数个数不同
参数类型不同
例
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
void func(int i)
{
cout << i << endl;
}
void func(int i,double j)
{
cout << i <<" "<<j<<endl;
}
void func(double j,int i)
{
cout << i << " "<< j << endl;
}
void main()
{
func(2);
func(4.0, 4);
func(3, 3.0);
system("pause");
return;
}
打印结果:
2
4 4
3 3
为什么c++支持重载c不知处重载?
答:c和c++函数名在汇编中的修饰不同,即在返汇编时c中的函数名是什么就是什么然而c++会有函数名的变化。
c++ c
3.缺省参数
#include<iostream>
#include<stdlib.h>//syztem的头文件
using namespace std;
int Add1 (int a=0, int b=0)//全缺省参数
{
return a + b;
}
int Add2(int a, int b = 0)//半缺省参数(半缺省只能缺省右边的并且是连续的)
{
return a + b;
}
void main()
{
cout << Add1() << endl;
cout << Add1(2) << endl;
cout << Add1(2,2) << endl;
cout << Add2(3) << endl;
cout << Add2(3,3) << endl;
system("pause");
return;
}
打印结果:
0
2
4
3
6
名字空间域是随标准c++而引入的。它相当于一个更加灵活的文件域(全局域),可以用花括弧把文件的一部分括起来,并以关键字namespace开头给它起一个名字
例:namespace name1{
int a=0;}
namespace name2{ int a=1;} 标准c++库中的所有组件都是在一个被称为std的名字空间中声明定义的,在采用标准c++的平台上使用标准c++库中的组件,只要写一个using指示符:
using namespace std;
就可以直接使用标准c++库中的所有成员;或者std::成员的方式使用c++库里的成员。(::是作用域解析符)
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
namespace my//创建一个为my的名字空间
{
int a = 100;
}
namespace you//创建一个为you的名字空间
{
int a = 90;
}
int a = 80;//存在于std中
void main()
{
int a = 70;
printf("%d %d %d %d\n", a, ::a, my::a, you::a);//(::a)没有指明命名域则为全局命名域中
system("pause");
return;
}
打印结果:70 80 100 90
也可以修改命名域中的值
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
namespace my//创建一个为my的名字空间
{
int a = 100;
}
namespace you//创建一个为you的名字空间中创建一个为my1的名字空间
{
namespace my1
{
int a = 90;
}
}
void main()
{
my::a = 10;
you::my1::a = 9;
std::cout << my::a << you::my1::a << endl;
system("pause");
return;
}
打印结果:10 9
cout是标准输出流对象,<<是输出操作符
cout是标准输入流对象,>>是输出操作符
endl是换行操作符;
他们都属于c++标准库,所以都在std的名字空间里面
2.c++重载函数
什么是重载函数:在同一作用域内,一组函数的函数名相同,参数列表不同,返回值可以相同也可以不同。
使用重载函数需要满足以下任意条件
参数个数不同
参数类型不同
例
#include<iostream>//c++库的头文件
#include<stdlib.h>//syztem的头文件
using namespace std;//std 是c++标准库的名字空间
void func(int i)
{
cout << i << endl;
}
void func(int i,double j)
{
cout << i <<" "<<j<<endl;
}
void func(double j,int i)
{
cout << i << " "<< j << endl;
}
void main()
{
func(2);
func(4.0, 4);
func(3, 3.0);
system("pause");
return;
}
打印结果:
2
4 4
3 3
为什么c++支持重载c不知处重载?
答:c和c++函数名在汇编中的修饰不同,即在返汇编时c中的函数名是什么就是什么然而c++会有函数名的变化。
c++ c
3.缺省参数
#include<iostream>
#include<stdlib.h>//syztem的头文件
using namespace std;
int Add1 (int a=0, int b=0)//全缺省参数
{
return a + b;
}
int Add2(int a, int b = 0)//半缺省参数(半缺省只能缺省右边的并且是连续的)
{
return a + b;
}
void main()
{
cout << Add1() << endl;
cout << Add1(2) << endl;
cout << Add1(2,2) << endl;
cout << Add2(3) << endl;
cout << Add2(3,3) << endl;
system("pause");
return;
}
打印结果:
0
2
4
3
6
相关文章推荐
- c++ 中assert的用法
- C++_系列自学课程_第_8_课_指针和引用_《C++ Primer 第四版》
- 【翻译】Kinect v2程序设计(C++) Depth编
- 关于c++中字符串的系统函数
- C++ 类成员访问运算符 -> 重载
- 红黑树的C++代码实现
- Qt/C++ 设置背景图片3种方法
- C++拷贝构造函数
- C++学习-构造+析构+拷贝
- 设计模式C++实现(10)——桥接模式
- leetcode 462 Minimum Moves to Equal Array Elements II C++
- C/C++ sizeof与Strlen的区别与联系
- C++中的位域(bit-filed):一种节省空间的成员
- 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
- C++中const重载
- c++ const用法总结
- 繁忙额图书馆-621-码酷(c++)
- C++ 对象模型
- C++深度探索系列:智能指针(Smart Pointer) [二] (转)
- C/C++绘制余弦曲线