2013-05-08 90 views
5

頭文件不兼容:宣言是

#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聲明,該聲明是「<錯誤 - 不兼容鍵入> bankAccount :: getAcctOwnersName()const「。

+1

如前所述,代碼不應該編譯,因爲頭文件不包含''。我認爲這個問題可能是頭文件比'std :: string'提取了'string'的不同含義。嘗試將'#include '放入標題,並在其中使用'std :: string'而不是普通的'string'。看看是否有幫助。 – Angew 2013-05-08 12:29:35

+2

除非這是編譯器顯示的* first *錯誤,否則最好忽略它。始終處理從上到下的錯誤列表;不要從打印的最後一張開始,儘管這是在輸出中最容易找到的。通常,一個程序的早期錯誤可能會導致後來出現一連串的錯誤,如果沒有解決首先觸發它們的錯誤,那麼嘗試修復後面的錯誤並不是一件好事。 – 2013-05-08 12:32:09

回答

14

您需要

#include <string> 

bankAccount頭文件,並參考字符串作爲std::string

#ifndef H_bankAccount; 
#define H_bankAccount; 

#include <string> 

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

    .... 

一旦它被包含在標題中,就不再需要將它包含在實現文件中。

+0

好吧我添加std :: string到我的頭文件代碼之前的字符串類型,它並沒有改變任何 – 2013-05-08 12:30:49

+2

好吧,永遠不要感謝現在很多工作現在 – 2013-05-08 12:32:43