美文网首页
Boolan-C++面向对象高级编程 学习笔记(二)

Boolan-C++面向对象高级编程 学习笔记(二)

作者: FishParadise | 来源:发表于2018-01-14 17:38 被阅读0次

    感冒了,先这样交着吧,后面再改

    三大函数:拷贝构造,拷贝复制,析构

    有指针的类设计:

    s1 = s2

    带指针的类进行复制时,需要清空原有分配的内存,再设置新的内容。

    删除空间,重新分配空间,重新赋值:

    Stack栈,是存在与某种作用于(Scope)的一块内存空间(memoryspace)。例如当调用函数时,函数会形成一个Stack用来存放所接受的参数,以及返回地址。

    这样写,Complex的析构函数会自动被调用起来。

    c2是静态对象,其声明在作用域结束后仍然存在,直到整个程序结束。

    c3是全局对象,生命在整个程序结束后才结束,也可以视为一种static object,其作用域是整个程序。

    Heap堆,是由操作系统提供的一块global内存空间,程序可动态分配(dynamicallocated),从中获得若干区块(blocks)。

    调试模式,new complex时的内存分配,与,发布模式时的内存分配。

    分配的空间都是16的倍数,不足补充pad。

    cookie指的是空间大小,最低位为1表示给出去,0表示收回来。

    new []与delete[]要成对使用:

    static静态:

    对于类内部构成来说,可以进行如下分类:

    声明3个complex c1, c2, c3,此时:

    非静态成员非静态成员变量是独立的三份数据,占用三份独立的内存空间。

    static 成员三个对象只有一个static成员,内存中只有一份。

    举例:100万个银行用于,某些属性不同,但是如利率的信息相同,利率就可以定义为static。

    非静态函数三个对象的成员函数只有一份, 函数被调用时通过隐藏的this指针区分对象。

    static 函数static函数没有this指针,无法得到this。所以不能访问非静态成员。通常用来存取static成员。

    Singleton设计模式:

    只有A自己能创建自己,保证A只有一份。只有在使用时才创建A。

    强悍的cout:

    cout就是一种ostream

     

    类模板(模板类):

    告诉编译器,目前T只是个符号。这样就行成了类模板或模板类。

    在创建对象时告诉编译器T具体是什么,然后查找替换。

    函数模板(functiontemplate):

    类的模板使用时需要明确指出具体的类型,函数模板无需这样。因为编译器会做参数推导(argument deduction)处理。

    标准库中常用函数模板。

    命名空间namespace:

    直接使用:“using namespace std;”,将std的包装全部打开,这样cin、cout等等全部内容可以直接使用。

    单个打开:“using std::out;”,只打开cout,使用cin还需要“std::cin”。

    相关文章

      网友评论

          本文标题:Boolan-C++面向对象高级编程 学习笔记(二)

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