命名空间,输入输出流,重载,缺省参数,引用和指针区别

1.命名空间 
    命名空间是一个程序员自己命名的内存区域,他可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来,以免产生名字冲突。
例如:
namespace apple
{
    int a;
    double b;
}
    namespace是定义命名空间所必需的关键字,apple是用户自己指定的命名空间的名字,花括号内是声明块,其中声明的实体是命名空间成员。apple包括变量a和b,a和b是全局变量,仅仅是把他们藏在命名空间中而已,如果在程序中要使用a和b,必须加上命名空间名和作用域分辨符::(apple::a),
2.C++基本的输入输出流(简单介绍一下就行) 
    cout<<"hello"<<endl;输出
    cin>>"hello">>endl;输入
3.重载
    定义:函数重载:对一个函数名重新赋予它新的含义,使一个函数名可以多用,所谓重载就是一物多用。
    限制:重载函数的参数个数、参数类型、参数顺序中必须至少有一种不同。 
    C++为什么支持重载?:
    因为C++有函数名称修饰规则(函数名、函数参数数量及类型信息)


    编译器内部完成了翻译部分:(此处是借鉴他人的理论)
    1.预处理
       1)头文件展开
       2)宏的替换
       3)去注释
       4)条件编译
    2.编译过程:将高级语言转为汇编语言
    3.汇编过程:汇编语言转为二进制程序
    链接部分:所引用的数据链接进来
    比如一个函数的声明如下:
    void  function(int x,int y);


    在c语言中,编译器在编译后在库中的名字为_function
    在c++中,编译器在编译后在库中的名字为_function_int_int
    还有一个函数的声明如下:
    void function(float x,float y);
    在c语言中,编译器在编译后在库中的名字为_function
    在c++中,编译器在编译后在库中的名字为_function_float_float
    在链接时,都是找名字进行链接的,就比如以上两个函数,
    在C语言中两个的名字一样,就会在链接中报错。
    C++中它们的名字不一样,所以就不会报错。
4.C++缺省参数 
    (1)全缺省参数
     int add1(int a=0,int b=0)
     {
         return a+b;
     }
     (2)半缺省参数
      int add2(int a,int b=0)
     {
         return a+b;
     }
     void test()
     {
        add1();
        add1(1,1);
        add2(2);
        add2(2,2);
     }
不能用add1(,2);要先传前面的,如add1(2,);
5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)
    (1)引用只能在定义时初始化一次,之后不能改变指向其他变量;指针变量的值可以改变;
    (2)引用必须指向有效的变量,指针可以为空;
    (3)指针和引用自增和自减意义不一样;
    (4)sizeof指针对象和sizeof引用对象不一样,sizeof引用得到的是所指向变量的大小,而sizeof指针是对象地址的大小。
    (5)相对来说,引用比指针更安全。
注意:指针比引用更加灵活,但也更危险,使用指针时一定要注意检查指针是否为空,指针所指的地址释放以后最好置0,否则可能存在野指针。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值