小编Wac*_*cov的帖子

如何在MATLAB类中获取静态成员变量?

有没有办法在MATLAB类中定义静态成员变量?

这不起作用:

classdef A

    properties ( Static )
        m = 0;
    end
end
Run Code Online (Sandbox Code Playgroud)

它建议使用关键字"常量"而不是"静态",不能修改常量属性.我想要一个对所有类对象通用的变量A,我希望能够在类的方法中修改该变量A.

所以我需要的是一个私有静态成员变量.有没有办法在MATLAB中获得它?


发现可以使用静态成员函数中的持久变量来完成变通方法.

在这种情况下,您应该从基类继承所有类,如下所示.

classdef object < handle

    properties ( GetAccess = 'public', SetAccess = 'private' )
        id
    end

    methods ( Access = 'protected' )
        function obj = object()
            obj.id = object.increment();
        end
    end

    methods ( Static, Access = 'private' )
        function result = increment()
            persistent stamp;
            if isempty( stamp )
                stamp = 0;
            end
            stamp = stamp + uint32(1); …
Run Code Online (Sandbox Code Playgroud)

oop matlab class static-functions matlab-class

15
推荐指数
2
解决办法
1万
查看次数

C++智能指针:共享指针与共享数据

在这篇富有洞察力的文章中,其中一位Qt程序员试图解释Qt实现的各种智能指针.在开始时,他区分共享数据和共享指针本身:

首先,让我们直截了当:共享指针和共享数据之间存在差异.共享指针时,指针的值及其生命周期受智能指针类的保护.换句话说,指针是不变的.但是,指针指向的对象完全在其控制之外.我们不知道该对象是否可以复制,如果它是可分配的.

现在,共享数据涉及智能指针类,了解有关共享数据的信息.事实上,重点是数据正在共享,我们并不关心如何.在这一点上,指针被用于共享数据的事实是无关紧要的.例如,你真的不关心如何隐式共享Qt工具类,对吗?对您来说重要的是它们是共享的(从而减少了内存消耗),并且它们的工作就好像它们不同.

坦率地说,我只是不解释这个解释.文章评论中有一个澄清的请求,但我没有发现作者的解释充分.

如果你这样做明白这一点,请解释.这是什么区别,以及其他共享指针类(即来自boost或新的C++标准)如何适应这种分类?

提前致谢

c++ qt smart-pointers

9
推荐指数
2
解决办法
4149
查看次数

标签 统计

c++ ×1

class ×1

matlab ×1

matlab-class ×1

oop ×1

qt ×1

smart-pointers ×1

static-functions ×1