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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2013, 14:25   #1
pashqacpp
 
Аватар для pashqacpp
 
Регистрация: 04.01.2013
Сообщений: 3
Вопрос Не могу найти ошибку в примере из книги

Здравствуйте! Изучаю спп по книги Джеси Либерти "спп за 21 день"!
Вбил пример из главы о наследовании, но выдает ошибку, которую не могу найти...

Цитата:
Ошибка компилятора C2654
Вот код:
Код:
#include <iostream.h>

enum BREED {GOLDEN, CAIRN, DANDIE, SHETLAND, DOBERMAN, LAB};

class Mammal
{
public:
	// Constructors
	Mammal();
	Mammal(int);
	~Mammal();
	// Data access methods
	int GetAge() const		{return itsAge;}
	void SetAge(int age)		{itsAge = age;}
	int GetWeight() const		{return itsWeight;}
	void SetWeight(int weight)	{itsWeight = weight;}
	// Other methods
	void Speak() const		{cout << "Mammal sound!\n";}
	void Sleep() const		{cout << "shhh.. I'm sleeping.\n";}
protected:
	int itsAge;
	int itsWeight;

};

class Dog: public Mammal
{
public:
	// Constructors
	Dog();
	Dog(int);
	Dog(int, int);
	Dog(int, BREED);
	Dog(int, int, BREED);
	~Dog();
	// Data access methods
	BREED GetBreed() const		{return itsBreed;}
	void SetBreed(BREED breed)	{itsBreed = breed;}
	// Other methods
	void WagTail() const		{cout << "Tail wagging...\n";
	void BegForFood() const		{cout << "Begging for food...\n";}
private:
	BREED itsBreed;
};

Mammal::Mammal(): itsAge(1), itsWeight(5)
{
	cout << "Mammal constructor...\n";
}


Mammal::Mammal(int age): itsAge(age), itsWeight(5)
{
	cout << "Mammal(int) constructor...\n";
}

Mammal::~Mammal()
{
	cout << "Mammal destructor...\n";
}

Dog::Dog(): Mammal(), itsBreed(GOLDEN)
{
	cout << "Dog constructor...\n";
}

Dog::Dog(int age): Mammal(age), itsBreed(GOLDEN)
{
	cout << "Dog(int) constructor...\n";
}

Dog::Dog(int age, int weight): Mammal(age), itsBreed(GOLDEN)
{
	itsWeight = weight;
	cout << "Dog(int, int) constructor...\n";
}

Dog::Dog(int age, int weight, BREED breed): Mammal(age), itsBreed(breed)
{
	itsWeight = weight;
	cout << "Dog(int, int, BREED) constructor...\n";
}

Dog::Dog(int age, BREED breed): Mammal(age), itsBreed(breed)
{
	cout << "Dog(int, BREED) constructor...\n";
}

Dog::~Dog()
{
	cout << "Dog destructor...\n";
}

int main()
{
	cout << ".\n";

	Dog fido;
	Dog rover(5);
	Dog buster(6,8);
	Dog yorkie(3,GOLDEN);
	Dog dobbie(4,20,DOBERMAN);
	fido.Speak();
	rover.WagTail();
	cout << "Yorkie is " << yorkie.GetAge() << " years old.\n";
	cout << "Dobbie weighs " << dobbie.GetWeight() << " pounds.\n";
		
	return 0;
}
p.s А спойлера нет? не нашел как сделать..
pashqacpp вне форума Ответить с цитированием
Старый 03.02.2013, 15:02   #2
DmitriB
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 12
По умолчанию

После include'а у меня нужно было написать using std::cout;

Далее, в классе dog объявление private: BREED itsBreed; перенести выше, до его использования.

И вы пропустили скобку закрывающую void WagTail() const {cout << "Tail wagging...\n";
DmitriB вне форума Ответить с цитированием
Старый 03.02.2013, 16:17   #3
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Ужасная книга прошу её викинуть.
_________

Код:
using namespace std;
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 03.02.2013 в 16:20.
Perchik71 вне форума Ответить с цитированием
Старый 03.02.2013, 16:34   #4
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,657
По умолчанию

Цитата:
Ужасная книга прошу её викинуть.
Ну так посоветуйте другую - с кодом без багов
Книга как книга, сам по ней учился, (потом после большого перерыва перечитал за пару деньков - и нормуль). Правда компилировать примеры вот как-то не догадался
Не по теме:
А то можно подумать все книжки по плюсам должны именоваться не иначе как "СПП: тысяча и одна ночь"

Цитата:
p.s А спойлера нет? не нашел как сделать..
тем не менее
http://programmersforum.ru/showthread.php?t=226804
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 03.02.2013 в 16:38.
MihalNik вне форума Ответить с цитированием
Старый 04.02.2013, 10:43   #5
pashqacpp
 
Аватар для pashqacpp
 
Регистрация: 04.01.2013
Сообщений: 3
По умолчанию

Спасибо за ответы!
using name std тут ни к чему.., использую старый стиль включения заголовков.
Ошибка была в функции WagTail() - не хватило фигурной скобки.
Перенос переменной itsBreed не нужен.
По книге:
Думаю что это лучший вариант для новичка(хотя не совсем подхожу под это понятие), в ней вполне доступно излагается материал(хоть по-моему и слегка поверхностно), но все же.
pashqacpp вне форума Ответить с цитированием
Старый 05.02.2013, 13:25   #6
Summergirl-n
Новичок
Джуниор
 
Регистрация: 05.02.2013
Сообщений: 2
По умолчанию Выводит не то, что должен)

Здравствуйте, изучаю C++ для чайников 5-ое издание.
Часть кода:

Код HTML:
int main(int nArg, char* pszArgs[])
{
	setlocale(LC_ALL,"Russian");
	cout.setf(ios::hex, ios::hex);

	int nArg1 = 0x1234;
	int nArg2 = 0x00ff;

	cout << "Arg1	= 0x" << nArg1 << "\n";
		cout << "~nArg1	= 0x" << ~nArg1 << "\n";
	system("pause");
	return 0;
}
Должен выводить:

Код HTML:
Arg 1 = 0x1234
~nArg1 = 0Xffffedcb
А выводит:

Код HTML:
Arg 1 = 0x4660
~nArg1 = 0X-4661
Подскажите пожалйста в чем ошибка, а то я не могу понять.

Последний раз редактировалось Summergirl-n; 05.02.2013 в 13:58.
Summergirl-n вне форума Ответить с цитированием
Старый 05.02.2013, 14:32   #7
mrMeerkat
Следопыт
Форумчанин
 
Аватар для mrMeerkat
 
Регистрация: 26.04.2012
Сообщений: 307
По умолчанию

Код:
	cout << "Arg1	= 0x" << hex  << nArg1 << "\n";
		cout << "~nArg1	= 0x" << hex  << ~nArg1 << "\n";
Ему нужно было сказать чтоб выводил в шестнадцатеричном виде "<< hex << nArg1"
С Баша:Быть ленивым, глупым, жадным, да и просто редкостным гандоном и мудаком по жизни номально, а вот если ты матом ругаешься-то это да, ужасно и достойно общественного порицания.
mrMeerkat вне форума Ответить с цитированием
Старый 05.02.2013, 15:02   #8
Summergirl-n
Новичок
Джуниор
 
Регистрация: 05.02.2013
Сообщений: 2
По умолчанию

Спасибо, mrMeerkat!
Помогло.
Summergirl-n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пример из книги С++ win32 api не могу найти ошибку... Асурус Общие вопросы C/C++ 6 07.05.2012 15:50
Не могу найти ошибку 3K@BH Общие вопросы C/C++ 1 22.11.2011 10:20
Не могу найти ошибку ToDayGoodDay JavaScript, Ajax 1 15.08.2011 09:43
не могу найти ошибку Berg_13 Помощь студентам 0 16.05.2010 21:53
Пример из книги,помогите найти ошибку. ANTI Win Api 4 04.06.2008 23:59