gpt4 book ai didi

c++ - 有没有办法在 .cpp 中初始化/调用 CTOR?

转载 作者:行者123 更新时间:2023-11-28 02:04:00 24 4
gpt4 key购买 nike

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

关于c++ - 有没有办法在 .cpp 中初始化/调用 CTOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38309338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com