Как исправить следующие ошибки?

Здравствуйте, опять я со своими ошибками, на сей раз на плюсах.

[Error] name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]
[Note] (if you use '-fpermissive' G++ will accept your code)

#include <iostream>
#include <string>
#include <windows.h>
using namespace std;

class L_Book {
private:
	string name_book, autor; int pages;
	public:
	void AddBook(string a, string b, int c) {
		name_book = a;
		autor = b;
		pages = c;
	} 
	void GetAllBooks() {
		cout << "Book Name : \t" << name_book << endl << "Name Autor : \t" << autor <<endl << "Pages : \t" << pages << endl;
	}
} ;

void main() {
	string a, b; int c; bool soft = true; short menu, kol_books;
	L_Book book [500];
	setlocale (LC_ALL, "rus");

	//////////////STARTED
	while (soft == true) {
		system ("cls");
		cout << "\t 1) Добавить книгу" << endl << "\t 2) Список всех книг" <<endl;
		cin >> menu;

		if (menu == 1) {
			system ("cls");
			cout << ("Сколько книг хотите добавить? "); cin >> kol_books;
			for (int i = 0; i < kol_books; i++)
				system ("cls");

				cout << "Название книги: "; cin >> a, cout << endl;
				cout << "Имя автора: "; cin >> b; cout << endl;
				cout << "Количество страниц: "; cin >> c; cout << endl;
				book[i].AddBook ( a, b, c);
			}
			cout << "Успешно добавлено." << endl;
			Sleep (3000);

		}
         if (menu == 2) { 
         	system ("cls");
         	for (int i = 0; i < kol_books; i++) {
         		book[i].GetAllBooks();
         		Sleep(1000);
         	}
         	Sleep (3000);
         }
}
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@Yokozuna
В строке

book[i].AddBook ( a, b, c);

Не объявлено значение переменной.
Если этот блок внести в содержимое цикла for , то ошибок не будет:

for (int i = 0; i < kol_books; i++) {
                system("cls");

                cout << "Название книги: ";
                cin >> a, cout << endl;
                cout << "Имя автора: ";
                cin >> b;
                cout << endl;
                cout << "Количество страниц: ";
                cin >> c;
                cout << endl;
                book[i].AddBook(a, b, c);
            }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы