精华内容
下载资源
问答
  • 相同点: 如果元素上点击事件, 都不会响应了, 不会响应了 他们都会被插入 dom tree 中 不同点 : visibility:hidden仍然占据文档流’’ display:none 则不会文档流里面, 当我们用 chorme inspec 的时候, 当我们...

    相同点:

    1. 如果元素上有点击事件, 都不会响应了, 不会响应了
    2. 他们都会被插入 dom tree 中

    不同点 :

    1. visibility:hidden仍然占据文档流’’
    2. display:none 则不会有文档流里面, 当我们用 chorme inspec 的时候, 当我们在 dom tree 点击该元素的时候, 是无法有对应的显示出来的
    展开全文
  • 我们把函数变量声明为静态的什么优点那,从静态变量的角度看,更容易理解一些 使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。...

    在函数或者变量前面加上static修饰符号,以便把函数或者变量在类内或者文件范围内共享,那么我们把这种函数和变量叫静态函数和静态变量。

    我们把函数和变量声明为静态的有什么优点那,从静态变量的角度看,更容易理解一些
    使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,就可以保证所有对象都能够访问到被更新后的值,这样可以提高效率和节省内存空间。这是静态变量的优点同时也是他的一个缺点,在类中声明了静态变量,无论用户使用使用这个类,而这个静态变量都会申请他需要的内存容量。对于多线程的情况下,访问静态变量我们需要加一些异步机制,防止多个线程同时修改静态变量。

    类内静态函数比全局静态函数的用处要多的多,在这里先讲简单的
    全局静态函数的应用比较常见的就是
    static   int   fun()
    {
    ...;
    return   1;
    }
    当我们希望在多个类中调用fun函数时,我们必须把fun声明为static类型,不然在link时编译器会发现多个关于fun的定义。这种函数的应用,多少带有C的色彩,尤其当我们在C环境写好的函数,移植到C++中时,需要在函数前面需要加上static,而如果我们需要移植多个函数时,更通用的一种方法是使用未命名名字空间
    namespace{
    int   fun()
    {
    ...;
    return   1;
    }

    }
    也许有人问如果在未命名名字空间中的函数再加上static修饰符号会怎么样?这个就完全取决以使用的编译器,可能会直接报错,也可能可以编译并正常使用。不过这样写,代码从语言层次上就很难移植编译环境,所以尽量不要这样写。
    关于这样的应用,在我从前的项目中实施过。当时我需要定义很多函数,执行三角形,像素转换方面的计算,所以把这些函数声明为static的。
    对于与全局静态函数,我们继续类内静态函数和静态变量的讨论,我想他们的应用是两者区别的最好体现。
    对于类内静态变量,我们需要在类外初始化,这是在使用静态变量需要注意的地方,有些初学者很容易在这里出错。类内静态变量使用最多的就是计算类的实例化个数。
    class   A
    {
    static   int   i;   //   外部初始化为0
    public:
    A()   //   构造函数
    {
    ++i;
    }
    ~A()   //   析构函数  
    {
    --i;
    }
    static   int   CreateObjectNumber()   //   或者创建对象的数目
    {
    return   i;
    }
    };
    也许读者认为这种方法,只是用来学习而已,实际很少使用。我不赞同这个观点。
    在程序设计中,比如当前我做的皮肤系统中,我需要对所有创建的对象进行,并统计创建和销毁的对象是否相等,从而判断是否存在泄漏问题。所以我定义这样的一个类
    //   由于版权,我只保留说明问题的部分
    class   SkinBaseImpl
    {
    public:
    SkinBaseImpl(void);
    virtual   ~SkinBaseImpl(void);
    public:

    #ifdef   SKINTRACE  
    private:
    static   int   _ObjNum;
    #endif
    };
    #ifdef   SKINTRACE  
    int   SkinBaseImpl::_ObjNum   =   0;
    #endif
    /*=======================================================================*/
    /**
      *   @bri:   SkinBaseImpl构造函数  
      *   @param:   void
      */
    SkinBaseImpl::SkinBaseImpl(void):_useSkin(USE)
    {
    #ifdef   SKINTRACE  
    TRACE( "Create   new   object,   the   number   is   %d/n ",++_ObjNum);
    #endif
    }
    /*=======================================================================*/
    /**
      *   @bri:   SkinBaseImpl析构函数
      *   @param:   void
      */
    SkinBaseImpl::~SkinBaseImpl(void)
    {
    #ifdef   SKINTRACE  
    TRACE( "free   the   %d   object/n ",_ObjNum--);
    #endif
    }
    其他需要管理和统计创建销毁对象的类就可以从这个类继承。
    在这里我定义了宏SKINTRACE,当需要使用trace,以便获取创建对象的数量时,定义这个宏就可以。而不需要时,比如发布版时,只需注销到SKINTRACE的定义,这样不会在发布颁布留下任何痕迹。
    通过上面的例子,我们知道静态函数和静态变量的几个特性
    1:静态变量受public,protected   ,private限制,也就是如果静态变量是protected或者private类型的,在类外不能访问,比如
    A::i是错误的
    这条规则同样适用于静态函数
    2:静态变量在类内声明,而必须在类外初始化,模版类中应用也是这样。这里我们在static后面加上const类型,可以直接初始化。比如
    Class   A
    {
    //   Static   int   I   =   5;   //   error
    Static   const   int   I   =   5;   //   ok
    Int   m_list[I];
    }
    而这里I的应用也无非是Int   m_list[I];
    3:静态成员函数只能访问类的静态变量,而类的成员函数也可以访问类的静态变量,这样就可以通过静态成员变量建立类的静态成员函数和类对象的关联关系。
    4:还存在一种静态变量,他不是全局静态变量,而是函数内的静态变量,如下例中的i,这算是对全局静态变量的一种补充。
    int   fun()
    {
    static   int   i   =   3;
    ++i;
    return   i;
    }
    这种方式的好处时,只用调用fun函数时,静态变量i才申请内存,这也符合lazy   evaluation的设计要求。只有当需要时,才去申请。
    同样作为破坏封装的一种技术应用是友元函数或者友元类的应用,很多人形象比喻这种方式是在封装的物体上开了一个小小的洞,不提倡使用这种技术。其实任何技术都有他应用的场所,不然就不会出现这种技术。不过不去了解这种特性,也许永远我们不会知道这些技术的重要性。碰见这些技术也只会使用有色眼镜去看。友元函数的特征基本如下
    1) 必须在类的说明中说明友元函数,说明时以关键字friend开头,后跟友元函数的函数原型,友元函数的说明可以出现在类的任何地方,包括在private和public部分,不受private限制  
    2) 友元函数不是类的成员函数,所以友元函数的实现和普通函数一样,在实现时不用 ":: "指示属于哪个类,只有成员函数才使用 ":: "作用域符号;
    3) 友元函数不能直接访问类的成员,只能访问对象成员,所以在调用友元函数时,确保友元类的必须实例化。
    4) 友元函数可以访问对象的私有成员,但普通函数不行,这个需要注意,尤其是在友元类中,有时候发现两个类互相为友元类,确不能调用成员函数,就是这个原因。
    5) 调用友元函数时,在实际参数中需要指出要访问的对象,也可以把对象声明为全局对象而在友元函数中调用,当然在友元函数中可以调用其他全局函数,或者实例对象等操作。
    使用友员函数最大的优点就是,不用对类中的每个变量写Get/Set接口函数。尤其是当类中有大量的私有成员变量,而又不想为每个变量设置接口,同时又需要外部的某个函数调用。这样最好就是把这个函数声明为友元函数,我们在一些开源项目中很常见这种技术,比如阿agentx++。
    说道现在我一直没有提到模版中静态函数的应用,其实对于模版的应用,我不是很熟练。只能简单的说明一下.

    class   AU
    {
    public:
    AU(){
    };
    string   GetAU()
    {
    return   "Base--GetAU ";
    }
    virtual   string   GetAUU()
    {
    return   "Base--GetAUU ";
    };
    virtual   ~AU(){};
    };
    template   <class   T,class   TBase>
    class   TEMU:public   TBase
    {
    public:
    string   GetAA()
    {
    T*   pt   =   static_cast <T*> (this);
    return   pt-> GetA();   //   这里调用的是static   string   GetA()函数
    }
    string   GetBB()
    {
    T*   pt   =   static_cast <T*> (this);
    return   pt-> GetB();   //   这里调用的是string   GetB()
    }
    public:
    string   GetA()
    {
    return   "TEMU   -   GetA ";
    }
    string   GetB()
    {
    return   "TEMU   -   GetB ";
    }
    };
    class   DeriveTEMU   :   public   TEMU <DeriveTEMU,AU>
    {
    public:
    static   string   GetA()   //   注意这里是静态函数
    {
    return   "DeriveTEMU   -   GetA ";
    }
    string   GetB()
    {
    return   "DeriveTEMU   -   GetB ";
    }
    };
    测试用力
    DeriveTEMU   u;
    TEMU <DeriveTEMU,AU>   *p   =   &u;
    cout   < <   p-> GetAA()   < <   endl;
    cout   < <   p-> GetBB()   < <   endl;
    输出结果  
    DeriveTEMU   -   GetA
    DeriveTEMU   –   GetB
    在这里我们看到,调用类内静态函数的方式并不是简单的类名::函数的形式,而是通过模版父类调用子类静态函数,同样也给出了,调用普通函数的方式。这种机制可以理解为模版继承关系中的虚继承关系。当认识到模版中的静态函数使用,也许会更大的改变我们对静态函数的印象,这种机制在ATL,WTL中有广泛的应用,几乎每种涉及到消息影射关系的类中,都使用这种方式。
    以上是我对静态函数,静态变量的简单认识。也没有面面俱到的讲道静态的细节,这样说估计很多人会反感的。如果有错误,不妥,或者您认为重要但没有提到的,欢迎指正。
    本回复公布一周,一周后揭帖,并发布下一个议题,同时欢迎大家公布自己的议题。

     

    http://topic.csdn.net/t/20061023/16/5102847.html

    展开全文
  • 分摊是既分摊初级成本又...成本分摊的规则可以很多,比如根据统计指标,根据百分比,根据权重,根据固定金额等等。我们在系统中将分摊规则定义在一个重要的参数:分摊循环中。分摊循环是多行的。每一行中都定义了...

    分摊是既分摊初级成本又分摊次级成本至CO中对象的方法。成本分摊的规则可以有很多,比如根据统计指标,根据百分比,根据权重,根据固定金额等等。我们在系统中将分摊规则定义在一个重要的参数:分摊循环中。分摊循环是多行的。每一行中都定义了分摊成本流的发送方,接受方,分摊规则等内容。在月末我们指定需要执行的循环,系统自动完成分摊的全过程。分摊使用的是次级成本要素。

    分摊时:

    发送方:成本中心,业务流程

    接收方:成本中心,WBS元素,内部订单,成本对象,业务流程

    分配和分摊极为类似。分配的不同是它只处理初级成本要素,而且分配后的成本流仍然保持原成本要素。因此分配被经常用于类似水电费,房租等特定成本要素的分配过程。而分摊往往是将某个服务性成本中心的所有费用都以新的形式(次级成本要素)分配出去。

    分配时:

    发送方:成本中心,业务流程

    接收方:成本中心,WBS元素,内部订单,成本对象,业务流程

    你可以限制发送方类别的数量

    行项目既在为发送方过帐也为接收方过帐,并使分配正确纪录。

    附:分配与定期重过帐的差别

    定期重过帐中的行项目信息是会计信息,而分配中是发送方成本中心和接收方对象

    发送方:

    定期重过帐:No separate credit record is written on the sender for the cost element in the summary report. Instead, the totals record for the cost element is reduced on the debit side, means that the original debit amount can no longer be checked there

    分配:The system writes a totals record for the credit

    接收方:二者相同

    对于分配分摊定期重过帐三者

    相同之处:Both updates the partner in the totals record for the sender.

    三者都能限制接收方类别的数量

    性能:分摊》定期重过帐》分配

    分配和定期重过帐只能处理初级成本要素,original cost element 保持不变

    分摊能够处理初级和次级成本要素

    分配与分摊的差别

    分配中原始(初级)成本要素被保留,而分摊中原始成本要素被归组为分摊成本要素(次级成本要素)。原始成本要素不显示在接收方。

    分配只能处理初级成本要素,分摊能处理初级和次级成本要素。

    分配使用原始成本要素,而分摊使用分摊成本要素(次级成本要素)。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10586440/viewspace-293550/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/10586440/viewspace-293550/

    展开全文
  • 成本分摊的规则可以很多,比如根据统计指标,根据百分比,根据权重,根据固定金额等等。我们在系统中将分摊规则定义在一个重要的参数:分摊循环中。分摊循环是多行的。每一行中都定义了分摊成本流的发送方,接受方...
     一、分摊是既分摊初级成本又分摊次级成本至CO中对象的方法。成本分摊的规则可以有很多,比如根据统计指标,根据百分比,根据权重,根据固定金额等等。我们在系统中将分摊规则定义在一个重要的参数:分摊循环中。分摊循环是多行的。每一行中都定义了分摊成本流的发送方,接受方,分摊规则等内容。在月末我们指定需要执行的循环,系统自动完成分摊的全过程。分摊使用的是次级成本要素。
    分摊时:
    发送方:成本中心,业务流程
    接收方:成本中心,WBS元素,内部订单,成本对象,业务流程
    二、分配和分摊极为类似。分配的不同是它只处理初级成本要素,而且分配后的成本流仍然保持原成本要素。因此分配被经常用于类似水电费,房租等特定成本要素的分配过程。而分摊往往是将某个服务性成本中心的所有费用都以新的形式(次级成本要素)分配出去。
    分配时:
    发送方:成本中心,业务流程
    接收方:成本中心,WBS元素,内部订单,成本对象,业务流程
    你可以限制发送方类别的数量
    行项目既在为发送方过帐也为接收方过帐,并使分配正确纪录。
    三、附:分配与定期重过帐的差别
    定期重过帐中的行项目信息是会计信息,而分配中是发送方成本中心和接收方对象
    发送方:
    定期重过帐:No separate credit record is written on the sender for the cost element in the summary report. Instead, the totals record for the cost element is reduced on the debit side, means that the original debit amount can no longer be checked there
    分配:The system writes a totals record for the credit
    接收方:二者相同

    四、对于分配分摊定期重过帐三者
    相同之处:Both updates the partner in the totals record for the sender.
    三者都能限制接收方类别的数量
    性能:分摊》定期重过帐》分配
    分配和定期重过帐只能处理初级成本要素,original cost element 保持不变
    分摊能够处理初级和次级成本要素
    五、分配与分摊的差别
    分配中原始(初级)成本要素被保留,而分摊中原始成本要素被归组为分摊成本要素(次级成本要素)。原始成本要素不显示在接收方。
    分配只能处理初级成本要素,分摊能处理初级和次级成本要素。
    分配使用原始成本要素,而分摊使用分摊成本要素(次级成本要素)

    五.相关TCODE
    KSU3
    KSV3



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1558740


    展开全文
  • 不同的分辨率上,可能一像素被渲然成二个像素或者三个像素,所以在实际写代码的时候,我们写的 border: 1px solid #000; 可能实际被渲然为 2px/3px; 就像我有个一个纹身,我变胖了后,纹身也增大了一...
  • 三、不同点的解释 我们可以把源内存块目标内存块的地址分为以下几种情况,内存地址的大小从左到右就是从低地址到高地址。 情况1: 情况2: 情况3: 情况4: 情况1情况2不属于源字符串目标字符串重叠的情况...
  • 我们知道JavaScript是世界上最...React Vue 相同之处,它们都: 使用 Virtual DOM 提供了响应式 (Reactive) 组件化 (Composable) 的视图组件。 将注意力集中保持在核心库,而将其他功能如路由全局状...
  • 表单get提交post提交,一个很大的不同点大家都应该知道,post提交,浏览器地址栏中不会明文显示,而get提交,浏览器地址栏中会明文显示,这不是我们今天讨论的重点!今天讨论的重点如下:1.表单中如果2个控件的...
  • 相同点:屏蔽jdbc api的底层访问细节,使用我们不用与jdbc api打交道,就可以访问数据。jdbc api编程流程固定,还将sql语句与java代码混杂在了一起,经常需要拼凑sql语句,细节很繁琐。 mybatis的好处:屏蔽jdbc ...
  • 本人在传统的语音通信公司做过手机IP电话上的语音软件开发,也在移动互联网公司做过APP上的...我们今天主要聊聊这些不同点。 1,在传统语音通信公司都是在具体硬件上开发音频软件。了硬件就要相应的驱动,在L
  • 解释它们的不同点及在什么情况下用哪种连接,为什么? 解答 连接(JOIN)将数据库中的两个或多个表组合起来。为了使用连接, 每个表至少要包含一个相同的字段(属性)。不同的连接类型决定了哪些记录会出现在结果...
  • 对于P-N表格,我们采用从终点往前推导的方法,因为,终点必定是必败,终点不同,则必败的位置不同,P-N表格的也不相同。 P-N表格以下三个属性: 一:终点必定是必败(P)。因为在终点时,已经没办法走了...
  • 当设计一个动画时,由于不同运行设备性能之间可能存在很大的差异,比如一个老式奔腾机器酷睿的新机器的运算性能天壤之别,所以为了保证,精灵的移动在任何机器上都保持一样的显示效果,我们需要恒定的速度。...
  • Groovy与Java的不同点

    2017-05-31 09:02:39
    本文参考自Groovy文档 Differences with Java,所有...不过在Groovy中也很多地方Java不相同。列举如下。 默认导入 下面这些包会由Groovy默认导入,我们不需要手动导入这些包就可以直接使用其中的类。 ja
  • 企业云桌面是基于分布式云计算存储技术,... 企业办公环境复杂应用场景也不尽相同,即使是同一个企业各个部门之间用到的软件系统也都不同云桌面厂家禹龙云告诉我们企业在部署云桌面时需要注意以下几的: 1,一个...
  • 我们先来介绍一下两者的概念,代码示例,然后再比较一下它们的相同点和不同之处。1、简介我们知道,迭代器是为容器而生的,没有容器就没有迭代器。迭代器的主要功能就是要更快速、便捷的遍历容器中的元素。在遍历...
  • 特征、角、关键,这些概念虽然细节上的不同,但是在我们这里统一称为“特征”,也就是具有特征性质的。在图像处理中,所谓“特征”,主要指的就是“能够在其他含有相同场景或目标的相似图像中以一种...
  • overrideJava overload的定义及异同分析 方法的重写(Overriding)重载(Overloading)是Java多态性的不同表现重写(Overriding)是父类与子类之间多态性的一种表现而重载(Overloading)是一个类中多态性的一种表现 ...
  • 特征匹配 特征,表示图像内具有显著特征的像素。采用不同的特征检测算法...前面我们介绍过,每个特征标志其唯一身份特点的描述子,那么我们就可以通过在两个图像中寻找相似描述子来间接的匹配特征
  • 旋转坐标系旋转

    2015-09-30 22:34:00
    同一坐标系下的旋转变换(如图1所示)和不同坐标系之间的旋转变换(如图2所示),一直困扰着我,它们是两个不同的概念,但形式上很相似,以二维空间为例做了下推导,加深理解。 同一坐标系下的旋转变换,...
  • 浅谈sessioncookie的异同

    千次阅读 2017-08-10 18:59:07
    首先,我们先来说说他们的相同点吧  (1):都是用来存储数据的  (2):生命周期都是一次会话(默认情况下)  (3):可以给每次提供不同的数据  不同点:  (1):保存的位置不同,cookie是在浏览器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,533
精华内容 613
关键字:

我们有相同点和不同点