Как исправить ошибку

компьютеры программирование С++ ООП Си


Примечание:
class Deposit_MaxBank
{
public:
Deposit_MaxBank();
void Add (Deposits);
int find();
void Print();
//void Replenishment (); //пополнение
//void Withdrawal (); //снятие
~Deposit_MaxBank();
private:
int b;
vector <Deposits> dep;
};
................................................................................................................................................
int Deposit_MaxBank::find()
{
int number;
for (vector<Deposits>::iterator it = dep.begin(); it != dep.end(); it++)
{
if((*it).number == number) <---------------------------------------76 cтрочка
return b;
}
cout << "вклада с таким номером не существует" << endl;
}
...........................................................................................................
case 3:
{
int num;
cout << "Введите номер своего счета" << endl;
cin >> num;
myDeposit_MaxBank.find(num); <-------------------------176 строчка
myDeposit_MaxBank.Print();
cout << "Сколько денег вы хотите снять со счета" << endl;
................................................................................................................................
1>.\Kurs.cpp(176) : error C2660: 'Deposit_MaxBank::find' : function does not take 1 arguments
1>.\Kurs.cpp(76) : error C2248: 'Deposits::number' : cannot access private member declared in class 'Deposits'
Ответы:
мама!
ну (176) вообще очевидно, find объявлена без аргументов, а вызывается с аргументом.
(76) менее очевидно, по идее, тут дело в (*it).number -- обращение к классу снаружи, а атрибут number -- приватный, поэтому и ошибка. Соответственно, надо или сделать number как public, или с ключевым словом friend поиграться (слёту не скажу, у меня небольшая каша в голове от разных моделей OOP разных языков). См. доки по friend, если public не устраивает.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.