Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 12:44   #1
Ev1L
Пользователь
 
Регистрация: 25.11.2010
Сообщений: 39
По умолчанию Немогу разобраться в чем ошибка

Доброго всем времени суток. Решил научиться программировать на С++,
учусь по книге "Как программировать на С++", вроде бы правильно перепечатал код не подскажите в чем ошибка?

Код:
#include "iostream"
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;
using std::getline;

class Gradebook
{
public:
	void setCourseName( string name )
	{
		courseName = name;
	}
	string getCourseName()
	{
		return courseName;
	}
	void displaymessage()
	{
		cout << "Welcome to the Grade book for\n" << getCourseName() << "!" << endl;
	}
private:
		string courseName;
};
int main()
{
	string nameOfCourse;
	Gradebook  myGradeBook;
	cout << "Initial course name is: " << myGradeBook.getCourseName()<< endl;
	cout << "Please Enter course name" << endl;
	getline(cin, nameOfCourse);
	myGradeBook.getCourseName(nameOfCourse);
	cout << endl;
	myGradeBook.displaymessage();
	return 0;
}

Последний раз редактировалось Ev1L; 25.11.2010 в 13:33.
Ev1L вне форума Ответить с цитированием
Старый 25.11.2010, 13:04   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
#include <iostream>
Код заверните в тег CODE (значок #) и приведите текст сообщения об ошибке с указанием, в какой строке ошибка.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.11.2010, 13:15   #3
Ev1L
Пользователь
 
Регистрация: 25.11.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Гром Посмотреть сообщение
Код:
#include <iostream>
Код заверните в тег CODE (значок #) и приведите текст сообщения об ошибке с указанием, в какой строке ошибка.
Извиняюсь но я совсем новичок в этом вопросе, как понять "код заверните в тег"

myGradeBook.getCourseName(nameOfCou rse); на эту строчку ругается MS Visual c++, c комментарием "Слишком много аргументов в вызове функции"
Ev1L вне форума Ответить с цитированием
Старый 25.11.2010, 13:27   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
как понять "код заверните в тег"
Над окном редактирования сообщения есть значок #, по его нажатию появляются теги [ CODE ] и [ /CODE ] (только без пробелов). Между ними и надо располагать код ваших программ чтобы он отображался удобочитаемо с нормальными отступами и подстветкой синтаксиса. Отредактируйте первое сообщение и расположите код между этими тегами.
Цитата:
myGradeBook.getCourseName(nameOfCou rse); на эту строчку ругается MS Visual c++, c комментарием "Слишком много аргументов в вызове функции"
Может быть, вы имели в виду setCourseName? И пробел посередине имени аргумента уж точно лишний.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.11.2010, 13:40   #5
Ev1L
Пользователь
 
Регистрация: 25.11.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Гром Посмотреть сообщение
Может быть, вы имели в виду setCourseName? И пробел посередине имени аргумента уж точно лишний
нет в книге написано именно так, (пробела в коде не было, неправильно форум отобразил сообщение)
я уже совсем запутался проверил 2 раза синтаксис, вроде бы все верно
Ev1L вне форума Ответить с цитированием
Старый 25.11.2010, 13:57   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Ну вот теперь это гораздо читабельнее!
Цитата:
нет в книге написано именно так
Значит в книжке ошибка. Поскольку просят ввести имя, то потом по логике это имя нужно установить (set) в качестве нового значения. К тому же, в других местах метод setCourseName нигде не используется. Так что со всей неотвратимостью следует, что должно быть именно setCourseName, благо синтаксис соответствует.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.11.2010, 14:09   #7
Ev1L
Пользователь
 
Регистрация: 25.11.2010
Сообщений: 39
По умолчанию

большое спасибо буду дальше думать)
Ev1L вне форума Ответить с цитированием
Старый 25.11.2010, 16:26   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

прототип:
Код:
string getCourseName()
вызов:
Код:
myGradeBook.getCourseName(nameOfCourse);
Разница на лицо о чем компилятор и сообщил. Что за книга?
p51x вне форума Ответить с цитированием
Старый 25.11.2010, 19:57   #9
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Так над чем думать-то?? Просто заменяете в этой строчке get на set и не будет ошибки. Я же вроде вполне исчерпывающе объяснил, что откуда ни посмотри - в книге ошибка. В общем-то, такое сплошь и рядом бывает, особенно во всяких книжках "для чайников" и "выучи за 21 день", которые я не устану хаять.
В той строчке абсолютно точно должно быть
Код:
myGradeBook.setCourseName(nameOfCourse);
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 26.11.2010, 12:13   #10
Ev1L
Пользователь
 
Регистрация: 25.11.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
прототип:
Код:
string getCourseName()
вызов:
Код:
myGradeBook.getCourseName(nameOfCourse);
Разница на лицо о чем компилятор и сообщил. Что за книга?
Х.Дейтел, П.Дейтел "Как программировать на С++" ("С++ How to Program")

Книжку не один человек советовал.

но как ни странно ошибки и до этого я находил.
Ev1L вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ наследование классов. очень простая ошибка, немогу разобраться в выводе при одинаковых массивах Sanu0074 Помощь студентам 1 02.06.2010 10:33
не могу разобраться в чем ошибка pavel42 Помощь студентам 10 23.04.2009 18:22
Помогите разобраться в чем ошибка, pasha_1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 28.10.2008 12:14