您的位置:首页 > 编程语言 > C语言/C++

C++面向对象高级编程(上)_Boolan(W2)

2017-02-05 10:09 316 查看

拷贝构造、拷贝赋值、堆栈,模板笔记

1、在不带指针的类中可直接使用,编译器默认的拷贝构造,拷贝赋值,在带指针的类中需要手动重新编写。

2、字符串长度等于字符数+1,字符串以‘\0’结束

3、动态分配的内存需要利用析构函数释放内存空间new/delete。

4、类中带指针成员必须手动重写拷贝构造与拷贝赋值

5、浅拷贝不带指针的拷贝或者只拷贝指针不拷贝对象动态申请的资源,例如编译器提供的默认拷贝

6、深拷贝拷贝构造以一个对象为蓝本构造一个新的对象,新对象创造足够的空间存放蓝本内容然后拷贝蓝本内容的过程(拷贝对象指针的同时拷贝对象动态申请的资源)

7、拷贝赋值指两个对象都有内容,左值清空重新分配右值大小空间并把右值赋值给左值

8、<<不可以是一个成员函数,使用者在用的时候方向会相反,所以最好写成全局函数

9、Stack,是存在于某个作用域的一块内存空间,例如当你调用函数,函数本身即会形成一个栈用来放置它所接收的参数,以及返回地址。其生命在作用域结束之际结束

10、Heap,是指由操作系统提供的一块全局内存空间,,程序可动态分配从某中获得若干区块

11、堆上分配的内存都需手动释放内存,否则造成内存泄漏

12、如果对象是静态(static)对象,其生命在作用域结束之后仍然存在,直到整个程序结束。

13、全局对象,写在任何作用域之外,其生命在整个程序结束之后才结束,作用域是整个函数。

14、new先分配一个内存空间在调用构造函数

15、delete先调用析构函数,再释放内存

16、array new 搭配 array delete,否则会内存泄漏

17、传引用只要不是local object就可以

18、static 与对象脱离,不属于对象,属于整个类,所有对象可以共享

19、一个函数处理很多个对象的时候,类成员函数通过this指针找到处理的东西的内容在哪里

20、什么时候会使用static数据,固定不变的数据且所以对象共享同一数据时需要加static

21、什么时候会使用static函数,static没有this指针,只能处理静态数据

22、如果是数据是静态的需要在类外初始化数据,初始化时不需要加static

23、调用static函数的方式,通过对象或者通过类名调用

24、类模板格式template <typename T>

25、函数模板格式template <class T>

26、namespace,标准库所有的东西都被包装在namespacd中

27、用法

(using directive)using namespace std

(using declaration)using std::cout
或者每次使用标准库封装内容时加上std::

std::cout.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: