18.10管理未命名对象

作者: Jianbaozi | 来源:发表于2019-03-25 17:07 被阅读0次
#include "Graph.h"
#include "Simple_window.h"
template<class T>class Vector_ref {
    vector<T*>v;
    vector<T*>owned;
public:
    Vector_ref() {}
    Vector_ref(T*a, T*b , T*c, T*d = 0);
    ~Vector_ref(){
        for (int i = 0; i < owned.size(); ++i)
            delete owned[i];
    }
    void push_back(T&s) { v.push_back(s); }
    void push_back(T*p) { v.pop_back(p); owned.push_back(p); }
    T&operator[](int i) { return *v[i] };
    const T&operator[](int i)const { return *v[i]; }
    int size()const { return v.size() }
};
int main()
{
    using namespace Graph_lib;
    Simple_window win{ Point{100,100},800,600,"91Wanbabe" };
    Graph_lib::Vector_ref<Graph_lib::Rectangle>vr;
    for (int i = 0; i < 16; ++i) {
        for (int j = 0; j < 16; ++j) {
            vr.push_back(new Graph_lib::Rectangle{ Point{i * 30,j * 30},30,30 });
            vr[vr.size() - 1].set_fill_color(Color{ i * 16 + j });
            win.attach(vr[vr.size() - 1]);

        }
    }
    win.wait_for_button();
}
QQ截图20190325170629.jpg

相关文章

  • 18.10管理未命名对象

  • 人生总是如此难过的吗

    未命名A:人生总是如此难过的吗?未命名B:是的,长大后会更加难过的。未命名A:不能积极一点、快乐一点吗?未命名B:...

  • 2018-11-05

    Ubuntu 18.10更换为国内源 个人分类: Linux 安装Ubuntu 18.10后,使用国外源太慢了,修...

  • 论语18.10

    18.10周公谓鲁公曰:“君子不施其亲①,不使大臣怨乎不以,故旧无大故则不弃也,无求备于一人。” 注释 ①施:同“...

  • ART的安装和简单使用

    [TOC] 安装环境 Ubuntu18.10ART-bin-MountRainier-2016.06.05-Lin...

  • Trimmomatic的安装与试用

    [TOC] 安装环境 Ubuntu18.10Trimmomatic Version 0.38: binary 安装...

  • Velvet安装与试用

    [TOC] 安装环境 Ubuntu18.10velveth - simple hashing programVer...

  • vue中slot(插槽)

    未命名插槽 slot未命名时,每个 标签内都会生成父组件中提供的内容。父组件app.vue 子组件slottest...

  • iOS面试复习1——内存

    一、内存管理(MRC) (一) 管理对象 管理对象:OC对象 原因: 1、OC对象存放于堆里面 2...

  • SAP ABAP 常量和字面量

    常量和字面量 文字(数字和字符)是您在程序的源代码中创建的未命名数据对象。他们完全由他们的价值定义。您不能更改文字...

网友评论

    本文标题:18.10管理未命名对象

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