class - 如何从 MQL 中的方法返回对象或结构?
问题描述
struct Person {
string FirstName;
string LastName;
};
class Builder {
public:
Person Builder::Build() {
Person person;
person.FirstName = "FirstName";
person.LastName = "LastName";
return person;
};
};
当我编译它时,它给了我以下错误:
'return' - 结构有对象并且不能被复制。
我只需要创建一个结构或类对象并返回它,我不想做任何复制。
我尝试使用 & 和 * 组合,但没有奏效。我尝试使用类而不是结构,但它也不起作用。
我还尝试了如下所示的类:
class Person {
public:
string FirstName;
string LastName;
};
class Builder {
public:
Person* Build() {
Person person;
person.FirstName = "FirstName";
person.LastName = "LastName";
return &person;
};
};
int OnInit()
{
Builder builder;
Person* person = builder.Build();
string firstName = person.FirstName;
return(INIT_SUCCEEDED);
}
在运行时在 OnInit() 方法中访问 person.FirstName 时,它给了我无效的指针访问。
解决方案
找到了答案,但如何避免内存泄漏?使用后如何销毁对象及其指针?
class cPerson {
public:
string FirstName;
string LastName;
};
class cBuilder {
public:
cPerson* Build() {
cPerson* person = new cPerson();
person.FirstName = "firstname";
return person;
};
};
cBuilder builder;
cPerson* person = builder.Build();
string age = person.FirstName;
推荐阅读
- xslt - XSLT - 使用 key() 查找翻译字符串
- python - CUDA:128 个图像数据集内存不足错误
- sql - SQL我如何检查行是否在具有特定等级的表中具有该数据,以及它是否确实将Y放入具有该字段名称的另一个表中
- mysql - TypeORM 在 cron 作业中打开太多连接
- python - 如何使用 python 和 pandas 为 pnada 表的每一行中的某些单元格绘制一个单元格(面积图)
- python - LDA Mallet Gensim CalledProcessError
- node.js - pdf-creator-node 生成的 PDF 文件在页面开头占用太多空间
- r - 如何将传单组图层控制图添加到来自用户输入的 flexdashboard 数据?
- database - google firestore 上的链式查询
- python - Python pathlib.unlink:“str”对象没有属性“_accessor”