zoukankan      html  css  js  c++  java
  • CPP基础

    CPP基础
    1. 如果没有指明访问限定符(public,private),class中默认的private,而struct中的成员默认是public的。

    #include <iostream>

    using namespace std;

    int main()
    {
    cout<<"Hello world"<<endl;
    return 0;
    }

    2.命名空间namespace
    using namespace std;声明后,该命名空间的函数可直接调用。
    函数前可不加命名空间,std::cout, std::endl。
    此外,程序有一个默认的无名命名空间,若调用全局变量,可::cout(默认的无命名空间函数或变量)。

    3.C++中定义了布尔类型
    bool类型变量可赋值为true或false。

    4.引用类型
    引用相当于为某个变量起一个别名,注意引用操作的是变量,不是常量。
    int m;
    int &n = m;
    规则:
    1)引用被创建的同时必须初始化(指针则可以在任何时候初始化)。
    2)不能有NULL引用,引用必须与合法的存储单元关联。
    3)一旦引用被初始化,就不能改变引用的对象。

    引用的主要功能是传递函数的参数和返回值。
    void swap(int &x, int &y)
    {
    int temp;
    temp = x;
    x = y;
    y = temp;
    }
    传引用,实为传变量本身。

    引用作函数的返回值,可以作左值。若不想其做左值,可加const修饰。
    char arr[10] = {'a', 'b', 'c'};
    char & foo(int i)
    {
    return arr[i];
    }

    foo(1) = 'h';

    5.new和delete为C++关键字
    数组:int *arr = new int[10];
    delete [] arr;
    new和malloc在heap上分配的空间地址不同,因此malloc和free配对使用,new和delete配对使用。

    6.函数的缺省参数
    c++在声明函数时允许给某些参数制定缺省值。
    参数缺省值一般写在声明中。
    缺省参数从右向左连续赋值。

    6.inline函数
    c++中用inline函数来取代C语言中类似函数的宏定义。
    使用内联函数时注意inline关键字应该和定义放在一起,而不是和声明放在一起。
    由于inline函数相当于宏定义,因此通常将inline函数的实现直接放在头文件中,不写声明。
    内联函数优化级为O2。

    7.在C++代码中调用C的库函数, 让C函数可以运行在C++环境中(C++支持函数重载,编译时符号名为函数名+参数类型)。
    #ifdef __cplusplus
    extern "C" {
    #endif

    int add(int a, int b);

    #ifdef __cplusplus
    }
    #endif

    8. C++支持函数overload,两个或两个以上的函数,取相同的函数名,但是形参的个数或类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数。

    int add(int, int)在底层被重载为addii,double add(double, double)在底层被重载为adddd。
    用nm命令察看可执行文件的符号表。

    9. 类的对象中只保存变量,不保存成员函数,sizeof求得的大小只是变量占用的空间。

    C++中定义的struct无成员时,也占用一个字节;而在C语言中不占用空间。

  • 相关阅读:
    递归方法:对于树形结构的表,根据当前数据获取无限极的父级名称
    P
    A
    今年暑假不AC1
    J
    今年暑假不AC
    A
    *max_element函数和*min_element函数
    1199: 房间安排
    素数
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/9613569.html
Copyright © 2011-2022 走看看