【C++】入门基础知识

(一)命名空间 

  命名空间 实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。它相当于一个更加灵活的文件域(全局域),可以用花括号把文件的一部分括起来,并以关键字namespace开头给它起一个名字:            

  namespace name1 

  {

   int a = 0;

   }

   namespace name2
   {
   int a = 1;
  }
   name1::a = 3;
   name2::a = 4;

  {
   int a = 0;
   }
   namespace name2
   {
   int a = 1;
  }
   name1::a = 3;

   name2::a = 4;


  命名空间的作用:解决全局命名冲突的问题 标准C++库中的所有组件都是在一个被称为std的名字空间中声明和定义的。在采用标准C++的平台上使用标准C++库中的组件,只要写一个using 指示符: using namespace std; 就可以直接使用标准C++库中的所有成员。 或者 std:: 成员 的方式也可以使用 C++库里的成员。( ::是作用域解析符  )
  namespace std // std是C++标准库的名字空间
  {
  // 标准库成员

  }

实现一个简单的C++程序 :

#include <iostream> 

using namespace std;

int main ()

std::cout<<"hello world"<<std::endl; 

return 0;

}


(二)C++基本的输入输出流

    cout是标准输出流对象,<< 是输出操作符; cin是标准输入流对象,>>是输入操作符; endl是换行操作符;他们都属于C++标准库,所以都在std的名字空间里面。

   #include <stdio.h> int main ()

   {

int i2 = 1; double d2 = 2.22;

printf ("c type: int->%d, double->%f\n" , i2, d2);

printf("please input int and double:" ); scanf ("%d, %f" , &i2, &d2);

printf ("c type: int->%d, double->%f\n" , i2, d2); 

}

  

C语言的格式控制输出不同的格式,C++也可以:


(三)重载

  在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,但在C++中,这完全没有必要。C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading)。借助重载,一个函数名可以有多种用途。

例:void print(int a)

{  

printf("void print(int a)\n");

}


void print(string a)//参数类型不一样

{

printf("void print(string a)\n");

}

 函数的重载的规则:

    • 函数名称必须相同。
    • 参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)。
    • 函数的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以成为函数的重载。

      C++ 是如何做到函数重载的

    • C++代码在编译时会根据参数列表对函数进行重命名,当发生函数调用时,编译器会根据传入的实参去逐个匹配,以选择对应的函数,如果匹配失败,编译器就会报错,这叫做重载决议(Overload Resolution)。从这个角度讲,函数重载仅仅是语法层面的,本质上它们还是不同的函数,占用不同的内存,入口地址也不一样。

(四)C++缺省参数 

       所谓缺省参数,顾名思义,就是在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用该默认值,你就无须指定该参数。缺省参数使用主要规则:调用时你只能从最后一个参数开始进行省略,换句话说,如果你要省略一个参数,你必须省略它后面所有的参数,即:带缺省值的参数必须放在参数表的最后面。 缺省值必须是常量




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值