У меня возникают проблемы с конструкторами, мне нужно создать 2 конструктора. 1. конструкторы без аргументов, которые устанавливают объект в безопасное пустое состояние. 2. конструктор с двумя аргументами
Я получаю ошибки, когда присваиваю значение переменной объекта.
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. CreditCard (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;
};
ОБНОВЛЕНИЕ: Смешалось с переменными-членами и функциями (именами)
long long int nubmer;
Посмотрите внимательно на эту линию.
long long CreditCard::number() const {
return number;
}
Эта функция утверждает, что возвращает long long
, но на самом деле пытается вернуть функцию. Как это должно работать?
number
имени на самом деле является функцией, делает.