zoukankan      html  css  js  c++  java
  • c++学习笔记(新手学习笔记,如有错误请与作者联系)

    逗号”,“运算符:a = 公式1,公式2;把公式1的结果放进公式2中进行运算,如:

    a = 3*5 , a*4;

    计算结果:a = 3*5*4=60;

    typedef:类型别名,为已有类型另外命名

    typedef  已有类型名 , 新类型名

    using 新类型名 = 已有类型名

    如:

      tepedef double Area , Volume;
      using Area = double;

    枚举类型:将全部可取值一一列举出来(不限定作用域类型说明,继承于c语言)

    词法形式:emum 枚举类型名 {变量值列表},如: 

    enum Weekday {SUN,MON,TUE,WED,THU,FRI,SAT} 

    默认值:从0开始,一次递增,如:0,1,。。。

      可以在定义的过程中给枚举赋初始值,后面依旧依次递增,如:  

    enum Weekday {SUN,MON,TUE=10,WED,THU,FRI,SAT}

      则,该枚举的值应依次为{0,1,10,11,12,13,14}

    auto类型和decltype

      auto:编译器通过初始值自动推断变量的类型

      decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量

      例如:auto val = val1+val2;

          auto的类型取决于val1+val2的类型

        decltype(i) j = 2;

          定义变量j,其初始值为2,类型与i相同

      

     析构函数:

    构造函数:对象在创建的时候自动调用的一个函数
    析构函数:对象释放的时候自动调用的一个函数

    特点:

    1.析构函数的参数列表必须是void,不带有参数

    2.析构函数没有重载

    3.默认的析构函数什么都不做,类比于默认的构造函数

    创建方式:

    ~类名()
    {
    }

    对于一个指针对象时,在delete释放对象时才能被调用。

    临时对象:

    临时对象的创建方式:类名(参数);
    作用域只是当前语句。

    关于new和malloc,delete和free

    参数:malloc需要显示地指出所需内存的尺寸,而new不需要,使用sizeof来实现

    返回类型:new的返回值类型为指针,不需要强制类型转换,而malloc返回值为void*指针,因此需要强制类型转换为我们所需要的

    如:CStu* cs = (CStu*)malloc(sizeof(CStu));

    转载:https://blog.csdn.net/nie19940803/article/details/76358673

    同理,delete可以触发析构函数,而free不能触发析构函数

    this指针:

    如:  

    this->a = a;

    this表示这个类中,前面申明的a,后面的a表示该局部变量中的a

    相当于java中的 :    this.a=a;

                        

     静态成员变量,类外初始化规范,如:

    static int a;
    
    int CStu::a=13;

    静态成员变量也不能在类中进行初始化,只有静态整形常量才可以在类中进行初始化,如:

    public:
    
      static const int a = 13;

     内联函数:

     形式:在普通函数前面加上inline,如:

    与普通函数对比,

    普通函数:执行到被调用方法时,跳到被调用方法来执行;

    内联函数:执行到被调用方法时,把该方法插入到调用的位置进行执行

     优缺点:内联函数占用空间大,但是执行效率比较高

     运算符的重载:

     形式如:

    Source.cpp:
    void operator+(Number num,int x)
    {
    cout << (num.a+x) <<endl;
    }
    int main()
    {
    Number nnn;
    nnn+13;
    system("pause");
    return 0;
    }
    
     Number.h:
    public:
    int a;
    double b;

     运行结果:

    对象之间不能直接使用基本运算符进行计算的,而运算符的重载则实现了直接对对象使用操作符进行运算。

     说明:该方法没有返回值,不能实现连加功能,若要实现连加功能,需要将void换成需要的返回值类型。

     动态分配内存:

    malloc:(int *) malloc(4*5);   //不会初始化

    calloc:calloc(4,5);               //初始化为0

    free:释放内存

    realloc:重新分配内存

     形式参数和实际参数

    形式参数:一般定义的时候的参数,double,int

    实际参数:一般调用的时候传入的实际参数,(10,20)

    GetProfileString 为win.ini初始化文件中指定的条目取得字串

    atoi函数把字符串转换成整型数 

    strlen():

    返回字符串的长度

    strcat():

    是一个复制字符串的函数

    了解strcat函数函数功能:

    (1)函数原型:char *strcat(char *dest, const char *src);

    (2)函数功能:dest 为目的字符串指针,src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部;dest 最后的结束字符 NULL 会被覆盖掉,并在连接后的字符串的尾部再增加一个 NULL。

  • 相关阅读:
    【五校联考5day1】登山
    非旋Treap及其可持久化
    自然数幂求和——第二类Strling数
    [JZOJ6011] 【NOIP2019模拟1.25A组】天天爱跑步
    [JZOJ5232] 【NOIP2017模拟A组模拟8.5】带权排序
    FreeRTOS 任务通知模拟消息邮箱
    Python爬虫技术:爬虫时如何知道是否代理ip伪装成功?
    Python网络爬虫入门实战(爬取最近7天的天气以及最高/最低气温)
    Python numpy的基本操作你一般人都不会
    如何正确的使用Python解释器?你之前肯定用错了
  • 原文地址:https://www.cnblogs.com/xiaopangyu/p/9600307.html
Copyright © 2011-2022 走看看