c++ - 从指针类属性访问对象属性的问题
问题描述
我有以下课程:
class Customer {
private:
string name;
savingAccount *savingsAccount = nullptr;
public:
void setSavingsAccount(savingAccount savingsAccount);
savingAccount* getSavingsAccount();
和方法:
savingAccount* Customer::getSavingsAccount()
{
return this->savingsAccount;
}
void Customer::setSavingsAccount(savingAccount savingsAccount)
{
this->savingsAccount = &savingsAccount;
}
SavingAccount 类是从 account 结构派生的:
struct account {
private:
double balance;
double interestRate;
double interest;
const string accountType = "Base Account";
public:
account();
double getBalance();
double getIntRate();
double calculateInterest(int n);
void setBalance(double balance);
void setIntRate(double rate);
string getType();
};
class savingAccount : public account {
public:
double savingDepositArr[5];
const string accountType = "Saving Account";
现在的问题是:我正在创建 SavingsAccount 和 Customer 对象。
savingAccount newSavingAccount;
Customer customer;
customer.setSavingsAccount(newSavingAccount);
当我尝试通过 getSavingsAccount 访问任何内容时,我无法访问。
customer.getSavingsAccount.getBalance()
customer.getSavingsAccount().getBalance()
或者
customer.getSavingsAccount.accountType
我 100% 确定我没有以正确的方式使用指针。我一直在寻找解决方案很长时间,但仍然没有。如果我删除指针并将对象作为属性,它可以工作,但这不是我正在寻找的解决方案。我只想知道我做错了什么。
解决方案
getSavingsAccount()
返回一个指向储蓄账户的指针。如果您正在使用指向对象的指针,则无法访问属性.
(除非您取消引用)。您可以通过简写访问属性(无需取消引用)->
。
尝试customer.getSavingsAccount()->getBalance()