我将简短介绍一下,仅向您展示一个代码示例:

class myClass
{
public:
  myClass();
  int a;
  int b;
  int c;
}

// In the myClass.cpp or whatever
myClass::myClass( )
{
 a = 0;
 b = 0;
 c = 0;
}

好的。如果我知道有myClass的实例,并为a,b和c设置一些随机垃圾。
  • 在调用类构造函数后将它们全部重置为状态的最佳方法是什么,即:0、0和0?

  • 我想出了这种方式:
    myClass emptyInstance;
    myUsedInstance = emptyInstance; // Ewww.. code smell?
    

    要么..
    myUsedInstance.a = 0; myUsedInstance.c = 0; myUsedInstance.c = 0;
    
  • 我想您知道我想要什么,是否有更好的方法来实现这一目标?
  • 最佳答案

    myUsedInstance = myClass();
    

    如果使用这种形式,C++ 11非常有效。移动分配运算符(operator)将负责手动清洁每个成员。

    关于c++ - “reinitialize”/清理类实例的最快捷方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2664031/

    10-10 00:56
    查看更多