我有一个班级BankAccount,其中一个私人会员是BankAccount *客户[10]。我想在数组内部放置BankAccount类型的对象(字符串s,int a,double c,double r,double s),然后使用getString()或使用getAccountNum的int a访问每个单独的数据(如string s)( )。一直在尝试很多东西,但我得到一个空白的黑匣子。我怎样才能将对象放在私有类数组中?
#include "BankAccount.h"
BankAccount::BankAccount() : customers()
{
}
void BankAccount::work()
{
string n = "name";
string* nn = &n;
BankAccount* b = new BankAccount(nn);
customers[0] = b;
go();
}
BankAccount::BankAccount(string* n)
{
name = n;
}
string BankAccount::getName()
{
return *name;
}
void BankAccount::go()
{
string st = customers[0]->getName();
cout << st << endl;
}
答案 0 :(得分:0)
首先。创建银行帐户的成员变量数组。 第二。如果您不知道如何使用指针,请不要使用它。您可能仍会将“银行帐户”&#39;在数组中,即使它不是指针类型,你仍会得到相同的结果。
BankAccount::BankAccount() : customers()
{
}
void BankAccount::work()
{
string n = "name";
BankAccount* b = new BankAccount(); //do thus
b = new BankAccount(n); //dont do this('b' above will create memory leak
BankAccount a[1]; //no need to do this
a[0] = *b; // and this
customers[0] = a; // assign 'b' instead of 'a'
// customers是您的BankAccount成员变量数组?只需添加设置&#39; name&#39;的方法或使用此客户[0] .name = n;&#39;您仍然可以设置其成员变量&#39; name&#39; }
BankAccount::BankAccount(string n)
{
BankAccount nn; //don't do this
nn.name = n; // also this
// if you want to set the value of your member variable 'name', just equate it 'name = n;' you dont need to create new instance of 'BankAccount'.
}
string BankAccount::getName()
{
return name; //this is your only correct item
}
void BankAccount::go()
{
BankAccount b ; // dobt do this
string st = b.customers[0]->getName(); // almost correct. If you want to get name of 'customer[0]' just use this 'string st = customers[0]->getName();' or you can easily do print out 'cout << customers[0]->name << endl;'
cout << st << endl;
}
我认为你在这里遇到的错误是使用&#39; BankAccount&#39;和指针。 如果要访问成员变量,则不需要新的实例(如果从新实例获取值,输出将不同)。
尝试阅读c ++基础知识以获取更多详细信息。
我现在正在使用手机,所以请原谅我,如果我能解释得更好。我希望它有所帮助。 我希望你能让你的代码正常工作。 它仍然需要做很多工作。