c++命名空间,重载,缺省参数
2018-03-19 18:11
267 查看
1、认识c++
c语言是c++的一个子集。在c的基础上c++ 又有了很多新特性c++基本数据类型
2、c++命名空间:
相当于一个更加灵活的文件域,可以起到名字隔离的作用。此时在访问时需要使用操作符 ::
#include<iostream> using namespace std; namespace my{ int a = 10; } int a = 20; int main(){ int a = 30; printf("%d\n", a);//30 printf("%d\n", ::a);//20 ::默认是全局域 printf("%d\n", my::a);//10 system("pause"); return 0; }
3、重载
c语言不允许同名的函数,而c++可以支持函数重载 但是需要满足以下条件之一: 1、函数的参数个数不同 2、函数参数对应位置的参数类型不同,不针对总体类型而言例如 Func(double k,int j); Func (int j ,double k);
[重要:]为什么c语言不支持重载,c++支持重载?
首先先回顾一下程序从编译到运行的整个过程:
决定c++支持重载就在汇编阶段:
#include<iostream> using namespace std; int add(int a,int b){ return (a+b); } int add(int a,float b){ return (a+b); } int main(int argc,const char* argv[]) { int a = 10; int b = 20; printf("%d", add(a, b)); system("pause"); return 0; }
4、缺省参数
#include<iostream> using namespace std; //int add(int a,int b){ // return (a+b); //} //int add(int a, int b=3){ // return (a + b); //} int add(int a=2, int b = 3){ return (a + b); } int main() { int a = 10; int b = 20; cout << add(a, b) << endl;//不缺省 30 cout << add(a) << endl;//半缺省 13 cout << add() << endl;//全缺省 5 system("pause"); return 0; }
注意:
1、函数如果已经带有缺省参数的函数原型声明,则在该函数的定义中不允许出现缺省值。
2、一旦函数为某个参数指定了缺省值,后续参数也要定义缺省值,而且只能从右向左定义缺省参数。
相关文章推荐
- C++的重载解释与命名空间
- 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)
- c++ 基础知识(输入输出、namespace命名空间、引用、函数重载模版、内存管理)
- C++知识点---命名空间、缺省参数、重载
- C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
- c++中的命名空间、函数重载、缺省参数
- c++基础知识(命名空间、输入输出流、重载、缺省、引用)
- C++ primer第二次阅读学习笔记(第17章:用于大型程序的工具:命名空间)
- C++ 命名空间namespace
- 从C到C++的升级之命名空间和数据类型
- C++ 命名空间
- c++面向对象编程(五)--高级 命名空间
- 为什么要用C++之:命名空间
- C++命名空间里面定义变量出现重定义错误
- C++ 命名空间
- C++基础(四)-命名空间
- 命名空间和模块化编程 - C++快速入门39
- C++中的命名空间、using用法、区域运算符(::)详解
- 2,3 c++中 #include< >头文件 和 命名空间 Using namespace std的解释和区别
- c++中::的用法和命名空间