2013-05-08 19 views
5
pliku

nagłówka:deklaracja jest niezgodna z typ

#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 

pliku 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; 
} 

Proszę pomóc mi się błąd pod getAcctOwnersName i setAcctOwnersName stwierdzając, że deklaracja jest sprzeczna z "< ERROR- typ> account bankcount :: getAcctOwnersName() const ".

+1

Jak przedstawiono, kod nie powinien się kompilować, ponieważ plik nagłówkowy nie zawiera "". Myślę, że problemem może być nagłówek wychwytujący inne znaczenie 'ciągu' niż' std :: string'. Spróbuj wstawić '#include ' do nagłówka i użyj 'std :: string' zamiast zwykłego' string'. Sprawdź, czy to pomaga. – Angew

+2

O ile nie jest to * pierwszy * błąd wyświetlany przez kompilator, prawdopodobnie najlepiej go zignorować. Zawsze sprawdzaj listę błędów od góry do dołu; nie zaczynaj od ostatniego, który drukuje, nawet jeśli jest to najłatwiejsze w wynikach. Często jeden błąd na początku programu może powodować kaskadę błędów w późniejszym czasie i nie ma sensu próbować naprawiać tych późniejszych, nie odnosząc się do tego, który wywołał je wszystkie na pierwszym miejscu. –

Odpowiedz

14

Trzeba

#include <string> 

w pliku nagłówkowym bankAccount, i odnoszą się do strun jak std::string.

#ifndef H_bankAccount; 
#define H_bankAccount; 

#include <string> 

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

    .... 

po uwzględnieniu w nagłówku nie trzeba go już uwzględniać w pliku implementacji.

+0

Okay Dodałem std :: string do mojego kodu pliku nagłówkowego przed typami ciągów znaków i nie zmieniło się w żaden sposób –

+2

Okay nevermind thanks much it works now –