C++入门

た 入场券 2022-05-11 11:50 73阅读 0赞

一、名字空间

  • 在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也应定义缺省值。
  • 调用函数时,如果略去一个参数传递,则略去后续所有参数传递,调用时将参数从左至右,逐一传递给行参。

    1. 例如:showmessage("hello");//√
    2. showmessage("hello",5);//√
    3. showmessage("hello",5,8);//√
    4. showmessage("hello", ,8);// ×
  • 滥用缺省参数,损害代码的结构和可读性。

四、函数重载

  • C语言没有函数重载;
  • C语言给函数命名时不会修饰,链接时查询函数名地址时出错,所以将在链接时出错;
  • c++有函数重载;
  • c++为函数命名修饰,相同的函数名,参数列表不同,修饰后都有独立的名称,所以c++有函数重载;

发表评论

表情:
评论列表 (有 0 条评论,73人围观)

还没有评论,来说两句吧...

相关阅读