Какие ошибки в данном коде?

Не компилится вот этот код, не могу понять, что не так.
(Не обращайте внимание на умерший русский текст, в документе криво сохранил)
Претензии компилятора, которые я не очень понимаю.
[Error] name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]
[Error] 'AddBook' was not declared in this scope
[Error] 'cls' was not declared in this scope
[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);
         }
}

}
}
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Adamos
@Adamos
Компилятор же тычет носом в строчки, где проблема.
А проблема в том, что программист небрежен и не пользуется IDE, которая ткнула бы его носом более предметно - где он забыл фигурную скобку, где кавычки, а где - упомянуть класс, метод которого вызывает. Вот и все три ужасные ошибки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы