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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2016, 21:57   #1
guardian_progr
 
Регистрация: 10.04.2016
Сообщений: 4
По умолчанию Не отображаются данные класса при их вызове

Добрый день! Написал программу, которая содержит класс Dog и имеет 2 функции Menu() и Exit(). Функция Menu() даёт пользователю возможность ввести от 1-7 и должен вывестись результат, заявленный возле выбранного пользователем номера. Проблема состоит в том, что функции-гетеры ничего не возвращают (от 1-5, при нажатии 6 и 7 всё нормально). Подскажите, пожалуйста, где у меня ошибка.

Код:
#include <iostream>

using namespace std;

int Menu();
void Exit(); // function`s prototype

class Dog
{

public:

	Dog(int initialAge, int initialLength, int initialWeight,
		string initialColor, string initialName); //constructor
	~Dog() {}; // destructor

	void SetYears(int age) { itsAge = age; }
	int GetYears() const { return itsAge; }

	void SetColor(string color) { itsColor = color; }
	string GetColor() const { return itsColor; }

	void SetLength(int length) { itsLength = length; }
	int GetLength() const { return itsLength; }

	void SetWeight(int weight) { itsWeight = weight; }
	int GetWeight() const { return itsWeight; }

	void SetName(string name) { itsName = name; }
	string GetName() const { return itsName; }

	void Bark() { cout << "Wof! Gaf-gaf-gaf!!!" << endl; };

private:
	int itsAge, itsLength, itsWeight;
	string itsName, itsColor;
};

Dog :: Dog(int initialAge, int initialLength, int initialWeight,
	 string initialColor,  string initialName)
{
	itsAge = initialAge;
    itsLength = initialLength;
	itsWeight = initialWeight;
	itsColor = initialColor;
	itsName = initialName;
}

int main()
{
	bool exit = false;

	while (true)
	{
		Dog Raffus(5, 56, 45, "Black", "Raffucio");
		Raffus.SetColor("White");
		Raffus.SetLength(74);
		Raffus.SetName("Rafusionus");
		Raffus.SetWeight(45);
		Raffus.SetYears(5);

		int choice = Menu();

		switch (choice)
		{
		case 1:
			Raffus.GetYears();
			break;
		case 2:
			Raffus.GetWeight();
			break;
		case 3:
			Raffus.GetLength();
			break;
		case 4:
			Raffus.GetColor();
			break;
		case 5:
			Raffus.GetName();
			break;
		case 6:
			Raffus.Bark();
			break;
		case 7:
			exit = true;
			break;
		}
		if (exit == true)
		{
			Exit();
			break;
		}
	}
	system("pause");
	return 0;
}

int Menu()
{
	int choice;

	cout << "***Doggy***" << endl;
	cout << "1.) How many years?" << endl;
	cout << "2.) How many does he weight?" << endl;
	cout << "3.) What is his length?" << endl;
	cout << "4.) What color does he have?" << endl;
	cout << "5.) What is his name?" << endl;
	cout << "6.) How does he barkes?" << endl;
	cout << "7.) Exit program." << endl;

	cin >> choice;
	return choice;
}

void Exit()
{
	cout << "See you another time!" << endl;
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 28.06.2016 в 22:09.
guardian_progr вне форума Ответить с цитированием
Старый 28.06.2016, 22:11   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Они возвращают. Вы просто не выводите никуда то, что они вернули.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.06.2016, 22:26   #3
guardian_progr
 
Регистрация: 10.04.2016
Сообщений: 4
По умолчанию

Так я же вызываю, к примеру, Raffus.GetLength();
Оно должно вернуть itsLength и вывести на экране.
guardian_progr вне форума Ответить с цитированием
Старый 28.06.2016, 22:37   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А это что кому должно?

Код:
int sum(int a, int b)
{
    return a+b;
}

int main()
{
    sum(2, 2);
    sum(2, sum(2, 3) * sum(3, 4));

    return 0;
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.06.2016, 22:53   #5
guardian_progr
 
Регистрация: 10.04.2016
Сообщений: 4
По умолчанию

Ах, я всё понял. Спасибо))
guardian_progr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция базового класса вызывает критическую ошибку при вызове для класса-потомка Archet Общие вопросы C/C++ 7 17.01.2012 20:17
Не отображаются данные таблицы panuta Общие вопросы Delphi 8 18.09.2011 12:31
Не отображаются данные Алекссс БД в Delphi 9 29.07.2011 18:44
Ошибка при вызове метода класса coNsept Общие вопросы C/C++ 2 14.12.2010 13:09
Не отображаются данные связанные с гл. таблицей? zimmion БД в Delphi 11 27.02.2008 18:50