我在.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