C++基础初步认识

初识C++

  1. C++关键字
  2. 命名空间
  3. C++输入&输出
  4. 缺省参数
  5. 函数重载
  6. 引用
  7. 内联函数
  8. CentOS中g++的下载安装
  9. 【面试题】

C++关键字

命名空间

        定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的 成员。

C++输入&输出

        cin       //输入
        cout    //输出
        //使用cout输出和cin输入时,必须包含< iostream >头文件

#include <iostream>
using namespace std;

int main()
{
    int a;
    double b;    
    cin>>a;
    cin>>b;
    out<<a<<endl;
    cout<<b<<" "<<endl;
    return 0;
}

缺省参数

        声明或定义函数时为函数的参数指定一个默认值

  • 全缺省参数
  void TestFunc(int a = 10, int b = 20, int c = 30)
  • 半缺省参数

        从右往左依此提供,不能间隔                

 void TestFunc(int a, int b = 10, int c = 20)

        缺省参数不能同时出现在函数声明和定义中
        当声明与定义分离时,只能在声明中出现
        当声明与定义一体时,在定义中出现

函数重载

  • 函数重载概念

        函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,
        这些同名函数的形参列表(参数个数、类型、顺序)必须不同,
        常用来处理实现功能类似数据类型不同的问题   

int Add(int left, int right)
double Add(double left, double right)
  • 名字修饰(name Mangling)

        在C/C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。
Name Mangling是一种在编译过程中,将函数、变量的名称重新改编的机制,简单来说就是编译器为了区分各个函数,将函          数通过一定算法,重新修饰为一个全局唯一的名称。

  • extern “C”

        有时候在C++工程中可能需要将某些函数按照C的风格来编译,在函数前加extern "C",意思是告诉编译器,将该函数按照C语言规则来编译。            

 extern "C" int Add(int left, int right);

引用

        引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。

特性:
        1. 引用在定义时必须初始化
        2. 一个变量可以有多个引用
        3. 引用一旦引用一个实体,再不能引用其他实体

引用和指针的区别
        1. 引用在定义时必须初始化,指针没有要求
        2. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体
        3. 没有NULL引用,但有NULL指针
        4. 在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节)
        5. 引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小
        6. 有多级指针,但是没有多级引用
        7. 访问实体方式不同,指针需要显式解引用,引用编译器自己处理
        8. 引用比指针使用起来相对更安全

内联函数

        以inline修饰的函数叫做内联函数

特性:
        1. inline是一种以空间换时间的做法,省去调用函数额开销。所以代码很长或者有循环/递归的函数不适宜使用作为内联函数。
        2. inline对于编译器而言只是一个建议,编译器会自动优化,如果定义为inline的函数体内有循环/递归等等,编
        译器优化时会忽略掉内联。

CentOS中g++的下载安装

        打开终端,进入root
        输入yum install gcc-g++        
        进行下载安装,安装成功之后可以输入which g++查看g++所在位置,一般在/usr/bin目录下

【面试题】

        宏的优缺点?
        优点:
             1.增强代码的复用性。
             2.提高性能
        缺点:
            1.不方便调试宏。(因为预编译阶段进行了替换)
            2.导致代码可读性差,可维护性差,容易误用。
            3.没有类型安全的检查

猜你喜欢

转载自blog.csdn.net/yh971660526/article/details/81511358