摘要: 与new相关: https://www.cnblogs.com/suui90/p/13126652.html 其它: 对不是使用new初始化的指针使用delete时,结果将是不确定的,并可能是有害的 阅读全文
posted @ 2020-06-14 22:29 孱陵 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 如果在构造函数中使用new来初始化指针成员,则应在析构函数中使用delete new和delete必须相互兼容。new对应于delete,new[]对应于delete[] 如果有多个构造函数,则必须以相同的方式使用new,要么都带中括号,要么都不带。因为只有一个析构函数,所有的构造函数都必须与它兼容 阅读全文
posted @ 2020-06-14 22:22 孱陵 阅读(2495) 评论(0) 推荐(0) 编辑
摘要: ——可以将成员函数声明为静态的(函数声明必须包含关键字static,但如果函数定义是独立的,则其中不能包含关键字static) 调用: 不能通过对象调用(包括this指针) 公有部分声明的,可以使用类名和作用域解析运算符调用: int count = String::HowMany(); // in 阅读全文
posted @ 2020-06-14 22:02 孱陵 阅读(574) 评论(0) 推荐(0) 编辑
摘要: C++98: 字面值0表示空指针(另一个含义表示数字0);可使用(void*)0来标识空指针,还可使用NULL(表示空指针的C语言宏) C++11: ——引入关键字nullptr 以表示空指针 仍可像以前一样使用0(兼容) 兼容delete[]: delete[]与使用new[]初始化的指针和空指针 阅读全文
posted @ 2020-06-14 21:50 孱陵 阅读(3759) 评论(0) 推荐(1) 编辑
摘要: ——C++允许类对象赋值,这是通过自动为类重载赋值运算符实现的,原型如下: Class_name & Class_name_name::operator=(const Class_name &); 何时使用: 将已有的对象赋给另一个对象时,将使用重载的赋值运算符,初始化对象时,并不一定会使用赋值运算 阅读全文
posted @ 2020-06-14 21:39 孱陵 阅读(456) 评论(0) 推荐(0) 编辑
摘要: ——复制构造函数用于将一个对象的值复制到新创建的对象中,用于初始化过程中(包括按值传递参数),而不是常规的赋值过程中 原型: Class_name(const Class_name &) 何时调用: 新建一个对象并将其初始化为同类现有对象时,复制构造函数都将被调用 StringBad ditto(m 阅读全文
posted @ 2020-06-14 20:59 孱陵 阅读(314) 评论(0) 推荐(0) 编辑
摘要: ——类的所有对象共同一个静态数据成员,只创建一个静态数据成员副本 class StringBad { private: char *str; int len; static int num_strings; // 声明静态数据成员 public: ... }; 静态数据成员在类声明中声明 int S 阅读全文
posted @ 2020-06-14 19:59 孱陵 阅读(217) 评论(0) 推荐(0) 编辑