可以在 C++(17) 中捕获某些对象属性的破坏性分配事件吗?

Posted

技术标签:

【中文标题】可以在 C++(17) 中捕获某些对象属性的破坏性分配事件吗?【英文标题】:Possible to capture events on destructive assignment of some object property in C++(17)? 【发布时间】:2018-04-21 04:31:51 【问题描述】:

在 C++(17) 中,我需要捕获有关某些对象属性的破坏性分配的事件。换句话说,监听某些对象属性的更新。

我可以在 javascript 中做到这一点,并且需要在 C++17 上做到这一点。

以下是 JavaScript 的示例代码。

const obj = ; //some object
Object.defineProperties(obj,
      
        t:  //obj.t
          get() 
            return obj.t;
          ,
          //here capturing destructive assignment of some object property
          set(newT)    
            //do something
          
        
      );

谢谢。

【问题讨论】:

【参考方案1】:

自我回答。

我发现这基本上是在 C++ 中设计属性设置器的问题,默认情况下,C++ 中没有我完全忘记的属性功能。

所以这里是答案:

https://www.codeguru.com/cpp/cpp/cpp_mfc/article.php/c4031/Implementing-a-Property-in-C.htm

Does C++11 have C#-style properties?

【讨论】:

以上是关于可以在 C++(17) 中捕获某些对象属性的破坏性分配事件吗?的主要内容,如果未能解决你的问题,请参考以下文章

设计模式——17.备忘录模式

从向量中删除对象会破坏 C++ 中另一个对象中的对象

设计模式解密(17)- 备忘录模式

设计模式(十七):备忘录模式

备忘录模式

C++ vector::clear() - 破坏顺序? [复制]