【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++编译器会为一个类提供:

  • 默认构造函数,如果没有显示的构造函数
  • 默认析构函数
  • 默认复制函数
  • 默认赋值函数
  • 默认地址运算符
原文地址:https://www.cnblogs.com/achievec/p/4737838.html