我在.h中有这些指针声明对象:

ILFO *pLFOPianoRoll1, *pLFOPianoRoll2, *pLFOPianoRoll3;


我在.cpp中用以下命令初始化它:

pLFOPianoRoll1 = new ILFO(this, 8, 423, kParamIDPianoRollLFO1, 0);
pLFOPianoRoll2 = new ILFO(this, 8, 542, kParamIDPianoRollLFO1, 1);
pLFOPianoRoll3 = new ILFO(this, 8, 661, kParamIDPianoRollLFO1, 2);


但是我想在这里避免使用指针(我了解到“如果不需要它们,就不要使用它们”),而只需使用变量/类(由于以后会手动管理内存)。

但是,如何在.h(例如ILFO mLFOPianoRoll1)中清除对象的变量,然后在.cpp上调用CTOR?

最佳答案

您可以为此使用初始化列表。

#include <iostream>
#include <string>
using namespace std;

class A
{
public:
    A(int a_) : a(a_) { }

    void print()
    {
        std::cout << "A: " << a << std::endl;
    }

    int a;
};

class B
{
public:
    B() : a(1), a2(3) {}
    A a;
    A a2;
};

int main() {
    B bObj;
    bObj.a.print();
    bObj.a2.print();
   return 0;
}


https://ideone.com/C7Vx1X

08-04 20:40