C++入门
一、名字空间
- 在c++语言程序代码中有一行这样的语句:using namespace std;
- c++引入名字空间的概念是要解决全局命名冲突的问题;
- 用关键字namespace+一个名字可以表示变量、函数、嵌套的集合,std表示标准c++库中所有组件的一个名字集合;
- 所以有了这句话就可以直接使用标准c++库中所有有成员;
- 如果没有这句语句,则要使用std::成员的方式来使用标准c++库成员(::是作用域限定符)。
二、输入输出
- C语言通过scanf、printf函数来实现输入输出数据;
- 而c++通过流来实现,cout是标准输出流,<<是输出操作符;
- cin是输入流,>>是输入操作符;
- endl是换行操作符。
三、缺省参数
- 在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用该默认值,你就无须指定该参数;
- 缺省参数使用主要规则:调用时你只能从最后一个参数开始进行省略,换句话说,如果你要省略一个参数,你必须省略它后面所有的参数,即:带缺省值的参数必须放在参数表的最后面;
- 缺省值必须是常量;
- 显然,这限制了缺省参数的数据类型,例如动态数组和界面类型的缺省参数值只能是 nil;至于记录类型,则根本不能用作缺省参数;
- 缺省参数必须通过值参或常参传递;
- 如果函数已经带有缺省参数的函数原型声明,则在该函数的定义中不允许出现缺省值;
- 一旦为函数的某个参数指定了缺省值,则必须为后续参数也定义缺省值,从右到左定义缺省参数;例如:void showmessage(char *text,int length=1,int color ) ; //×,color也应定义缺省值。
调用函数时,如果略去一个参数传递,则略去后续所有参数传递,调用时将参数从左至右,逐一传递给行参。
例如:showmessage("hello");//√
showmessage("hello",5);//√
showmessage("hello",5,8);//√
showmessage("hello", ,8);// ×
- 滥用缺省参数,损害代码的结构和可读性。
四、函数重载
- C语言没有函数重载;
- C语言给函数命名时不会修饰,链接时查询函数名地址时出错,所以将在链接时出错;
- c++有函数重载;
- c++为函数命名修饰,相同的函数名,参数列表不同,修饰后都有独立的名称,所以c++有函数重载;
还没有评论,来说两句吧...