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

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

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.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值