简而言之,我创建了一个银行对象。使用我的CreateBank()
方法。
Bank* Program::CreateBank()
{
//Creates a new Bank object.
Bank *bank = new Bank();
return bank;
}
然后,当银行成功创建时,我基本上希望能够将其传递给任何其他方法 - 它的下一个位置应该是PopulateBank()
方法,它将填充信息
void Program::PopulateBank(Bank* bank)
{
bank->populate();
}
但是,目前无法编译PopulateBank()
方法。我有以下错误阻止我这样做:
"非静态成员必须与特定对象相关"
以下是我用于通话的代码:
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);
};
任何人都知道我做错了什么?或者可以给我一些提示?真的很感激!
答案 0 :(得分:1)
Program::PopulateBank
不是静态方法,因此您必须通过特定对象调用它。
Program prog;
Program.PopulateBank(bank);
或
Program *prog = new Program;
prog->PopulateBank(bank);
或者您可以将PopulateBank
方法设为静态,但我不知道这是否与该类逻辑一致。这取决于此方法的作用,以及是否需要访问特定对象的成员变量。