首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

12345,教你画好线框图

可以说线框图是产品流程中不可或缺的一部分,那么本文就通过两个定义、三个优点、五步流程、四个技巧、一款工具,来详细介绍线框图。...两个模糊定义 线框图并非是原型,但即使是经验丰富的设计师也可能会将两者混为一谈。了解两者的定义和区别能帮你有效定位线框图,避免跑偏。 线框图是产品设计的低保真呈现方式。...五步实用流程 虽然线框图的设计并没有一个标准规范,但以下五步设计流程是最实用的: 内容清单 视觉层次 内容线框图 打磨线框图 低保真原型 接下来看看每个步骤都是怎么操作的。...3、内容线框图 这个部分将会将你之前所规划的内容划分到不同的区块当中去。内容线框图仅仅是关乎内容的走向,而非展示方式。线框图在绝大多数情况下都同移动端优先的设计相适应。...4、不要制作过于复杂的交互 很多人会沉迷于某些工具制作交互的强大功能中,而忽视了线框图最重要读者的需求。线框图目标读者大多为设计师和程序员,他们希望你能提供准确直观的线框图。

86920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    虚函数、纯虚函数

    浏览量 1 1.类里如果声明了虚函数,这个函数是实现的,哪怕是空实现,它的作用就是为了能让这个函数在它的子类里面可以被覆盖(override),这样的话,编译器就可以使用后期绑定来达到多态了。...纯虚函数只是一个接口,是个函数的声明而已,它要留到子类里去实现。 2.虚函数在子类里面可以不重写;但纯虚函数必须在子类实现才可以实例化子类。...3.虚函数的类用于 “实作继承”,继承接口的同时也继承了父类的实现。纯虚函数关注的是接口的统一性,实现由子类完成。...4.带纯虚函数的类叫抽象类,这种类不能直接生成对象,而只有被继承,并重写其虚函数后,才能使用。抽象类被继承后,子类可以继续是抽象类,也可以是普通类。 5.虚基类是虚继承中的基类,具体见下文虚继承。

    44020

    虚函数与虚继承寻踪

    虚函数与虚继承寻踪 封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。...前四个字节存储的是虚函数表的指针vfptr,后四个字节存储对象成员var的值。虚函数表的大小为4字节,就一条函数地址,即虚函数fun的地址,它在虚函数表vftable的偏移是0。...图4 MyClassC对象模型 虚基类表每项记录了被继承的虚基类子对象相对于虚基类表指针的偏移量。...和虚函数表不同的是,虚基类表的第一项记录着当前子对象相对与虚基类表指针的偏移。MyClassA和MyClassB子对象内的虚表指针都是存储在相对于自身的4字节偏移处,因此该值是-4。...通过以上的对象组织形式,编译器解决了公共虚基类的多份拷贝的问题。通过每个父类的虚基类表指针,都能找到被公共使用的虚基类的子对象的位置,并依次访问虚基类子对象的数据。

    88490

    虚函数

    ,在基类的类定义中定义虚函数的一般形式:   virtual 函数返回值类型 虚函数名(形参表)   { 函数体 }   虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后...定义虚函数的限制:   (1)非类的成员函数不能定义为虚函数,类的成员函数中静态成员函数和构造函数也不能定义为虚函数,但可以将析构函数定义为虚函数。...为什么虚函数必须是类的成员函数:   虚函数诞生的目的就是为了实现多态,在类外定义虚函数毫无实际用处。   ...构造函数同时承担着虚函数表的建立,如果它本身都是虚函数的话,如何确保vtbl的构建成功呢?   注意:当基类的构造函数内部有虚函数时,会出现什么情况呢?...我们可以看到下面几点:   1)虚函数按照其声明顺序放于表中。   2)父类的虚函数在子类的虚函数前面。   一般继承(有虚函数覆盖)   覆盖父类的虚函数是很显然的事情,不然,虚函数就变得毫无意义。

    88231

    C++:14---虚继承,虚函数,多态

    此种菱形继承多存储了两倍的A的内存段,下面将介绍虚基类 ? 二、虚基类(virtual) 1.概念:也称虚继承、菱形继承。...用于多级混合继承时,保留一个虚基类 2.构造顺序 先构造虚基类,如果有多个虚基类,按声明(从左至右)依次构造 再构造基类,如果有多个基类,按声明(从左至右)依次构造 如果有子对象,再构造子对像,如果有多个子对象...再接着构造C,发现C继承于虚基类A,但发现虚基类A已经被B构造过了,所以不再构造A,直接构造C。...,其大小为4字节 2.注意 只有类中有虚函数时,才有虚函数表 父子类之间的虚函数表是不同的地址,且虚函数表中的虚函数的首地址也不同 class A { public: virtual void run1...原理:通过指针遍历虚函数表然后打印虚函数,虚函数都是按照顺序在内存中存储的 class A { public: virtual void run1(){cout<<"A1";}; virtual void

    72810

    C++学习——虚函数与纯虚函数

    文章目录 引言: 一、虚函数的定义和使用 关于虚函数,说明以下几点: 虚函数的访问 二、纯虚函数 三、补充内容 指向类中数据成员的指针变量 例题: 引言: 若要访问派生类中相同名字的函数,必须将基类中的同名函数定义为...关于虚函数,说明以下几点: 1、当在基类中把成员函数定义为虚函数后,在其派生类中定义的虚函数必须与基类中的虚函数同名,参数的类型、顺序、参数的个数必须一一对应,函数的返回的类型也相同。...3、虚函数必须是类的一个成员函数,不能是友元函数,也不能是静态 的成员函数。 4、在派生类中没有重新定义虚函数时,与一般的成员函数一样,当调 用这种派生类对象的虚函数时,则调用其基类中的虚函数。...5、可把析构函数定义为虚函数,但是,不能将构造函数定义为虚函数。 6、虚函数与一般的成员函数相比较,调用时的执行速度要慢一些。...二、纯虚函数 基类中不对虚函数给出有意义的实现,它只是在派生类中有具体的意义。这时基类中的虚函数只是一个入口,具体的目的地由不同的派生类中的对象决定。这个虚函数称为纯虚函数。

    3.3K20

    线框图?原型图?为何傻傻分不清楚

    首先,我们需要搞清楚的一点就是线框图不是真正意义上的原型。许多设计师和产品经理,甚至是经验丰富的设计大牛往往也很容易混肴这些专业术语。什么是线框图?什么是原型?什么时候使用线框图?...提供信息和功能——线框图,我该如何互动或如何使用——原型。 什么是线框图? 线框图是一种低保真且静态的呈现方式,设计师通常使用纸笔来表达自己的想法。...绘制线框图重点就是要快,明确表达自己的设计想法,它不是美术作品,无需过多的视觉效果。黑白灰则是它的经典用色。 ? 什么时候使用线框图?...线框图(Wireframe)是软件或者网站设计过程中非常重要的一个环节。线框图常常适用于非正式场合,用于团队内部的讨论。...花费成本 原型比线框图耗时且花费成本高,市面上的原型工具,价格和方式不等。

    61940

    虚树入门

    简介 虚树,顾名思义就是不真实的树。 它往往出现在一类树形动态规划问题中。 换句话说,虚树实际就是为了解决一类树形动态规划问题而诞生的!...于是,虚树诞生了 虚树 思想 虚树的主要思想是:对于一棵树,仅仅保留有用的点,重新构建一棵树 这里有用的点指的是询问点和它们的lca 煮个栗子 比如这样的一棵树(没错就是样例) ?...对于样例中的三次询问, 3 2 10 6 4 5 7 8 3 3 9 4 6 那么它的虚树分别长这样 ? ? ?...此处较为抽象,建议大家画图理解一下 不断重复这个过程,虚树就构建完成了,另外我们需要维护出链上的最小值,然后我们直接在虚树上dp就可以了 复杂度 虚树上除了要加入的询问点外,还有可能出现的$LCA$...那么虚树中的点数是$O(2*k)$的。 这样复杂度就只与k有关,$O(2*\sum k_i)$。

    56320

    虚函数&多态

    对于经常被问到的虚函数和多态的问题,发现百度百科回答得十分详细,所以自己在百度百科上的解释进行总结 一、虚函数 (1)虚函数简介:在某基类中声明为virtual并在一个或者多个派生类中被重新定义的成员函数...作为基类的Animal的成员函数speak( )被定义为虚函数,相应的其派生类Dog的成员函数speak( )自动变为虚函数;所以对于派生类中相应成员函数是否加上virtual关键字修饰,是可选的,但是为了可读性...(5)限制条件: 非类的成员函数不能定义为虚函数,类的成员函数中静态函数、构造函数也不能定义为虚函数,但是析构函数可以被定义为虚函数; 当基类中的某一成员函数声明为虚函数后,派生类中的同名函数(函数名相同...(6)总结: 指向基类的指针在操作它的多态对象时,会根据不同的类对象,调用其相应的函数,这个函数就是虚函数; 虚函数联系到多态,多态联系到继承。 二、多态性   多态是指同一个实体同时具有多种形式。...举个例子:从一个基类中派生,响应一个虚命令,产生不同的结果。

    1.1K10

    虚函数详解

    文章目录 一、多态与重载 1、多态的概念 2、重载—编译期多态的体现 3、虚函数—运行期多态的体现 二、虚函数实例 三、虚函数的实现(内存布局) 1、无继承情况 2、单继承情况(无虚函数覆盖) 3、单继承情况...(有虚函数覆盖) 4、多重继承情况(无虚函数覆盖) 5、多重继承情况(有虚函数覆盖) 四、虚函数的相关问题 1、构造函数为什么不能定义为虚函数 2、析构函数为什么要定义为虚函数?...只要有虚函数,C++类都会存在这样的一张虚函数表,不管是普通虚函数亦或是纯虚函数,亦或是派生类中隐式声明的这些虚函数都会生成这张虚函数表。...虚函数表创建的时间:在一个类构造的时候,创建这张虚函数表,而这个虚函数表是供整个类所共有的。虚函数表存储在对象最开始的位置。虚函数表其实就是函数指针的地址。...3、单继承情况(有虚函数覆盖) 覆盖父类的虚函数是很显然的事情,不然,虚函数就变得毫无意义。下面,我们来看一下,如果子类中有虚函数重载了父类的虚函数,会是一个什么样子?

    1.7K40

    抽象类纯虚函数与虚析构

    纯虚函数,一般是在设计一个基类时使用的,它将接口函数设置为纯虚函数后,只提供子类去继承并实现,以形成多态,除此以外不提供任何其他功能,我们称这种类为抽象类(abstract)。...【纯虚函数的声明语法】 virtual 函数声明 = 0; 【纯虚函数的特征】 1、只有声明,没有实现代码。 2、含有纯虚函数的类称为抽象类(abstract)。不能被实例化,只能被继承。...4、子类继承的纯虚函数,如果未实现,子类仍然为抽象类,仍然不能被实例化。 【虚函数的若干限制】 1、只有类的成员函数才能声明为虚函数。虚函数仅适用于有继承关系的类对象,所以普通函数不能声明为虚函数。...2、静态成员函数不能是虚函数静态成员函数不受对象的捆绑,只有类的信息。 3、内联函数不能是虚函数。 4、构造函数不能是虚函数,构造时,对象的创建尚未完成。构造完成后,能算一个名符其实的对象。...5、析构函数可以是虚函数且通常声明为虚函数。

    20730
    领券