構造体を含むクラスがあります。この構造体の新しいオブジェクトを作成するクラスのメソッドがあり、それをポインターとして返します。
このクラスには、この構造体へのポインターを受け取り、そのデータを出力する別のメソッドがあります。
唯一の問題は、印刷しようとすると、コンソールに奇妙なテキストが表示されることです。
コード例(実際のコードではありませんが、その原理):
// Header
class TestClass
{
public:
struct TestStruct
{
int ID;
string Name;
};
TestClass::TestStruct* CreateStruct(string name, int id);
void PrintStruct(TestClass:TestStruct* testStruct);
}
// C++ File
TestClass::TestStruct* TestClass::CreateStruct(string name, int id)
{
TestStruct testStruct;
testStruct.ID = id;
testStruct.Name = name;
TestClass::TestStruct *pStruct = &testStruct;
return pStruct;
};
void TestClass::PrintStruct(TestClass::TestStruct* testStruct)
{
cout << (testStruct)->ID << "\n";
cout << (testStruct)->Name << "\n";
};
int Main()
{
TestClass tClass;
tClass.PrintStruct(tClass.CreateStruct("A name", 1));
}