13

头文件:

#ifndef H_bankAccount;
#define H_bankAccount;


class bankAccount
{
public:
    string getAcctOwnersName() const;
    int getAcctNum() const;
    double getBalance() const;
    virtual void print() const;

    void setAcctOwnersName(string);
    void setAcctNum(int);
    void setBalance(double);

    virtual void deposit(double)=0;
    virtual void withdraw(double)=0;
    virtual void getMonthlyStatement()=0;
    virtual void writeCheck() = 0;
private:
    string acctOwnersName;
    int acctNum;
    double acctBalance;
};
#endif

cpp文件:

#include "bankAccount.h"
#include <string>
#include <iostream>
using std::string;


string bankAccount::getAcctOwnersName() const
{
    return acctOwnersName;
}
int bankAccount::getAcctNum() const
{
    return acctNum;
}
double bankAccount::getBalance() const
{
    return acctBalance;
}
void bankAccount::setAcctOwnersName(string name)
{
    acctOwnersName=name;
}
void bankAccount::setAcctNum(int num)
{
    acctNum=num;
}
void bankAccount::setBalance(double b)
{
    acctBalance=b;
}
void bankAccount::print() const
{
    std::cout << "Name on Account: " << getAcctOwnersName() << std::endl;
    std::cout << "Account Id: " << getAcctNum() << std::endl;
    std::cout << "Balance: " << getBalance() << std::endl;
}

请帮助我在 getAcctOwnersName 和 setAcctOwnersName 下遇到错误,说明声明与“<error-type> bankAccount::getAcctOwnersName() const”不兼容。

4

2 回答 2

23

你需要

#include <string>

在您的bankAccount头文件中,并将字符串称为std::string.

#ifndef H_bankAccount;
#define H_bankAccount;

#include <string>

class bankAccount
{
public:
    std::string getAcctOwnersName() const;

   ....

一旦它包含在标头中,您就不再需要将它包含在实现文件中。

于 2013-05-08T12:28:45.183 回答
0

有时会发生此错误,因为它因机器而异。如果您在一个文件中声明您的类及其所有实现,而不是在另一个文件中声明类并将其与您的驱动程序文件链接,您的程序将正常工作。再次:这完全是机器相关的错误。在 Visual Studio 2012 中,您将面临此类错误,因为它不适用于这些文件,而在其他版本的 vs 中,您将不会遇到任何错误类型异常。

希望值得。。。。。。

于 2021-11-25T15:09:18.143 回答