2014-02-07 166 views
0

我遇到了构造函数的问题,我需要创建2个构造函数。 1.将参数设置为安全空状态的无参数构造函数。 2.双参数的构造函数C++错误,类和构造函数

我得到的错误,当我分配一个值的对象变量。

CreditCard.cpp: In constructor âCreditCard::CreditCard()â: 
CreditCard.cpp:8:11: error: invalid use of member (did you forget the â&â ?) 
CreditCard.cpp: In constructor âCreditCard::CreditCard(long long int, char*)â: 
CreditCard.cpp:15:11: error: invalid use of member (did you forget the â&â ?) 
CreditCard.cpp: In member function âlong long int CreditCard::number() constâ: 
CreditCard.cpp:32:12: error: argument of type âlong long int (CreditCard::)()constâ does not match âlong long intâ 

1.CreditCard();

CreditCard::CreditCard() { 
    number=0; 
    strcpy(holder,"ABCD"); 
    balances=0; 
} 

2.信用卡式(2个参数)

CreditCard::CreditCard(long long num,char h[21]) { 
    number=num; 
    strcpy(holder,h); 
} 

3.第三错误

long long CreditCard::number() const { 

    return number; 
} 

类(在头文件)

class CreditCard { 
    long long int nubmer; 
    char holder[21]; 
    double balances; 

    public: 
    /*declarations of constuctors */ 
    CreditCard(); 
    CreditCard(long long num,char h[21]); 

    void charge(double c); 
    void pay(double p); 
    long long number() const; 
    double balance() const; 
    const char* name() const; 
}; 

UPDATE:得到混合了成员变量和函数(名称)在该行

回答

3
long long int nubmer; 

仔细查看。

long long CreditCard::number() const { 

    return number; 
} 

此功能声称它返回一个long long,但它实际上试图返回一个功能。这应该如何工作?

+0

就是这样。成员_variable_名称中的单纯的拼写错误不会导致此错误。正确的名称“数字”实际上是一个功能,确实如此。 –

+0

两种错误的组合比单独一种诊断困难得多。 –

+0

Welp,更快一点,并在正确的解释中编辑。 +1 – Xarn