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时,它会给我一个无效指针访问。