美文网首页
Boolan_C++面向对象高级编程(上)_第二周笔记

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

作者: cayhw | 来源:发表于2017-07-26 22:56 被阅读0次

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

    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进行以下修改:

    改为

    结果没有错误

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

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

    相关文章

      网友评论

          本文标题:Boolan_C++面向对象高级编程(上)_第二周笔记

          本文链接:https://www.haomeiwen.com/subject/gvqhkxtx.html