zoukankan      html  css  js  c++  java
  • 【8-17】c++学习笔记01

     

    控制台程序不自动退出方法:

    • system("pause");
    • getchar()
    • 使用执行 ctrl+F5,开始调试 F5会出现闪退

     

    动态内存分配

     1 //construct c string
     2 //class StringBad::StringBad(char *)
     3 StringBad::StringBad(char * pchar)
     4 {
     5     str = new char[std::strlen(pchar) + 1];
     6     std:strcpy(str, p);
     7     num_string++;
     8 }
     9 //static class numer should defined out of the class define file
    10 //static int num_string;
    11 int StringBad::num_string = 0
    //destructor
    StringBad::~StringBad()
    {
        num_string--;
        delete[] str;
    }

     

    复制构造函数

    • 如果类中有用new初始化的指针成员,则应该编写显示复制构造函数,以实现深拷贝,防止内存泄漏。
    • 类的默认构造函数实现的是浅拷贝,因此有静态成员时也应该编写复制构造函数,在构造函数处理静态成员。
    • 复制构造函数,参数一般为类的常量引用,以节约内存和时间

     

    c++编译器会为一个类提供:

    • 默认构造函数,如果没有显示的构造函数
    • 默认析构函数
    • 默认复制函数
    • 默认赋值函数
    • 默认地址运算符
  • 相关阅读:
    206. 反转链表
    JAVA 排序总结
    Codeforces Round #674 (Div. 3)
    【BM模板】
    【 lca 】最近公共祖先
    【 欧拉函数 】GCD
    【 裴蜀定理 】Border
    【调和级数 && 欧拉常数】 Harmonic Number
    【Lucas定理】组合数取模算法
    【 最短路 && 思维 】Escape Plan
  • 原文地址:https://www.cnblogs.com/achievec/p/4737838.html
Copyright © 2011-2022 走看看