LinuxForum.Fans
Тема

Учу С++, ошибки компиляции

Автор: aivs 4 сообщений 4709 просмотров
#223966

Изучаю С++ по книге Р. Лафоре Объектно-ориентированное программирование. Дошел до "Перегруженные функции", есть такой пример:

text
// overload.cpp
// перегрузка функций

#include <iostream> using namespace std; void repchar(); //прототипы void repchar(char); void repchar(char, int);

int main() { repchar(); repchar('='); repchar('+', 30); return 0; }

//------------------------------------- // функция repchar() // выводит на экран 45 символов '*' void repchar() { for(int j=0, j<45, j++) cout << '*'; cout << endl; }

//------------------------------------- // функция repchar() // выводит 45 заданных символов void repchar(char ch) { for (int j=0, j<45, j++) cout << ch; cout << endl; }

//------------------------------------- // функция repchar() // выводит заданный символ заданное число раз void repchar(char ch, int n) { for (int j=0, j<n, j++) cout << ch; cout << endl;

При попытке компиляции, ошибки:
[console][aivs@myhost cpp]$g++ overload.cpp -o overload
overload.cpp: В функции «void repchar()»:
overload.cpp:23:17: ошибка: expected initializer before «<» token
overload.cpp:23:17: ошибка: expected «;» before «<» token
overload.cpp:23:17: ошибка: expected primary-expression before «<» token
overload.cpp:23:25: ошибка: expected «;» before «)» token
overload.cpp: В функции «void repchar(char)»:
overload.cpp:33:18: ошибка: expected initializer before «<» token
overload.cpp:33:18: ошибка: expected «;» before «<» token
overload.cpp:33:18: ошибка: expected primary-expression before «<» token
overload.cpp:33:26: ошибка: expected «;» before «)» token
overload.cpp: В функции «void repchar(char, int)»:
overload.cpp:43:18: ошибка: expected initializer before «<» token
overload.cpp:43:18: ошибка: expected «;» before «<» token
overload.cpp:43:18: ошибка: expected primary-expression before «<» token
overload.cpp:43:25: ошибка: expected «;» before «)» token
[/console]

Области видимости переменных еще не прошел. До этого ошибок компиляции не было.
Я еще в С++ не силен, помогите разобраться. Не хочу оставлять этот пример без внимания.

#223970

Не силён в C++, но в конце явно не хватает фигурной скобки.

#223994

Во-первых:

text
for( ...; ...; ...);

Во-вторых, не стоит отступами провоцировать ошибки при чтении алгоритма человеком, cout << endl; вне цикла:

text

  for (int j=0; j<45; j++)
    cout << ch;
  cout << endl;

ps. Про завершающую "}" уже сказали выше.

#224327

ппц я отмочил, прошу прощения, уже под конец рабочего дня занимался, ничего не соображал, bormant спасибо, теперь всегда будет так:

text
  for(int j=0; j<45; j++){
    cout << '*';
  }
  cout << endl;

А завершающая "}" была, я ее не скопировал.
Тему можно закрыть! всем спасибо!

Войдите или зарегистрируйтесь, чтобы ответить.