gpt4 book ai didi

c++ - 将指针对象传递给方法

转载 作者:行者123 更新时间:2023-11-28 05:51:53 25 4
gpt4 key购买 nike

简而言之,我创建了一个银行对象。使用我的 CreateBank() 方法。

 Bank* Program::CreateBank()
{

//Creates a new Bank object.

Bank *bank = new Bank();

return bank;
}

然后,当银行成功创建后,我基本上希望能够将其传递给任何其他方法——下一个位置应该是 PopulateBank() 方法,该方法将用信息。

    void Program::PopulateBank(Bank* bank)
{
bank->populate();
}

但是,目前无法编译 PopulateBank() 方法。我有以下错误阻止我这样做:

"A nonstatic member ference must be relative to a specific object"

这是我用于调用的代码:

    void Program::TestBankClass()
{

//Creates new bank Object.
//Populates the bank object.
//lists customers that were populated with all information.

Bank* bank = CreateBank();

PopulateBank(bank);

ListAllCustomers(bank);

这是我的头文件:

class Program
{

public:

static void AccountTester();
static void TransactionTester();
static void CreditAccountTester();
static void TestCustomerClass();
static void TestBankClass();

void ListAllCustomers(Bank* bank);
Bank* Program::CreateBank();
void PopulateBank(Bank* bank);

};

有人知道我做错了什么吗?或者可以给我一些提示吗?真的很感激!

最佳答案

Program::PopulateBank 不是静态方法,因此您必须通过特定对象调用它。

Program prog;
Program.PopulateBank(bank);

Program *prog = new Program;
prog->PopulateBank(bank);

或者您可以将 PopulateBank 方法设为静态,但我不知道这是否与类的逻辑一致。这取决于这个方法做什么,以及它是否需要访问特定对象的成员变量。

关于c++ - 将指针对象传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074943/

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