Boolan_C++面向对象高级编程(上)_第二周笔记

紧接上次课程,将老师上课内容归纳总结的重点如下:

7、三大函数

(1)拷贝构造:string(const string& str)

         拷贝赋值:string& operator=(const string& str)

                析构:~string()

(2)析构函数作用是为清理动态分配中的内存;

(3)拷贝赋值函数中不要忘记检测自我赋值。

8、堆、栈与内存管理

(1) stack(栈):是存在于某作用域的一块内存空间。

heap(堆):是指由操作系统提供的一块内存空间,程序可动态分配从某中获得的若干块。

(2)new:先分配memory,在调用ctor。

delete:先调用dtor,再释放memory。

(3)内存空间计算,16进位,调试模式与非调试模式区别。

9、复习string类实现过程

&放在typename后面是reference,放在object前面是取地址,得到一个指针。

10、扩展补充

(1)静态数据只有一份,静态函数没有this point;

(2)类模板和函数模板;

(3)using namespace std 表明标准库全打开,可以直接用,

using std::count 表明只打开了count ,其余要使用时需写全称,例如std::cin。

11、总结

(1)对于标准库的使用,需要在前面打开才能使用,我们一般看到的是简称,是在标准库打开的前提下的使用方法;如果前面未打开,在使用时需要写全称,如std::cin。

(2)关于类成员函数命名m_data,这里为什么要使用m开头?这是采用匈牙利命名法,m代表成员变量(这是在交流群里学习到的)。

(3)在做作业时出现以下错误:error C2661: 'Point::Point' : no overloaded function takes 2 parameters。 出现这个的原因是The specified overloaded function was not declared for the given number of parameters.因此,将h文件中class point进行以下修改:


改为


Boolan_C++面向对象高级编程(上)_第二周笔记_第1张图片


结果没有错误


(4)程序编写完成后,没有编译错误,但是没有显示结果,运行exe文件后结果如下:


这个问题目前还在解决中。。。

你可能感兴趣的:(Boolan_C++面向对象高级编程(上)_第二周笔记)