C++入门知识点

一.关键字:63个

    命名空间目的使对标识符的名称本地化,避免命名冲突和命名污染,一个命名空间定义了一个 新的作用域

   namespace N1  {  } 

   可嵌套

   使用: 1. printf("%d",N1::a)    2.using N1::a;  printf("%d",a);     {命名成员的引入}

        3. using namespace N1;    {命名 空间的引入} 

二.半缺省函数从右往左给出,从左往右匹配

    缺省值必须是常量或全局变量

三.函数重载

    同名函数的形参列表必须不同(参数个数,类型,顺序)

    函数值仅返回值不同,不能构成重载

    无参函数与同名的全缺省参数不能共存

    a.c->a.obj(编译)(按照语法对代码检测)->a.exe(链接)

四.引用   类型&引用变量名(对象名)=引用实体

    给已经存在变量取一个别名,和引用的变量公用一块内存空间(引用类型和引用实体相同)

    一个变量可以有多个引用; 

    1.做参数   

                1) 需要通过形参改变外部实参  T&

                2)不需要    const T&

    2.做返回值      离开作用域后,栈上空间还给系统了,故不能用栈上空间作为引用类型返回

    在语法概念上,引用是一个别名,无独立空间;在底层实现上实际上有空间的,因为引用是按指针方式实现的

引用和指针不同点:

    1.引用在定义时必须初始化

    2.引用引用一个实体后,不能再引用其他实体;指针可以指向任何一个同类型的实体

    3.无NULL引用,引用自加是实体增加1

    4.sizeof中,引用结果是引用类型的大小

    5.访问实体不同,指针需要显示解引用,引用编译器自己处理

    6.引用比指针相对更安全

内联函数: inline修饰的函数, 编译时(会进行类型检测),C++编译器在调用内敛函数的地方展开,无函数压栈开销,

以空间换时间,故代码很长或循环/递归的函数不适合(若有,编译器优化时会忽略掉内联)

声明和定义不分开,分离会导致链接错误,因为inline被展开,就没有函数地址了

宏的优缺点(预处理)

    优点:增强代码复用性;  提高性能

    缺点:不方便调制宏(在预编译阶段进行了替换)

            代码可读性差,可维护性差,容易误用

C++那些技术代替宏

     常量定义换用 const(编译期间已被替换)

     函数定义换用内联函数

五.auto  在C++11中,声明的变量由编译器在编译时推导而得

     auto定义变量时必须初始化(占位符)

     指针时auto auto*无区别,引用时必须用auto&

     在同一行声明多个变量时,变量类型必须相同

     auto 不能作为函数的参数,用来声明数组

范围for:由冒号分为两部分,第一部分用来迭代的变量,第二部分表示被迭代的范围

     for(auto e: array)     for(auto& e: array)  修改数组中的内容加&,不修改不需要加

nullptr代表一个指针空值常量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值