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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2011, 17:56   #1
MsWindows
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 44
Вопрос класс компилируется но не чего не выводит на экран

Вот код класса:
Код:
#include <iostream>
#include <conio.h>
#include <locale.h>
using namespace std;
class Cat
{
public:
	Cat (int initialAge);      // Конструктор
	~Cat ();			      //  Деструктор
	int GetAge();            // Метод Доступа
	void SetAge (int age);  // Метод Доступа
	void Meow();
private:
	int itsAge;


};

//Конструктор класса Cat
Cat::Cat(int initialAge)
{
  itsAge=initialAge;

}

//Деструктор

Cat::~Cat()
{
}

//GetAge открытая функция обеспечения доступа
// возращает значение переменной-члена itsAge
int Cat::GetAge()
{
  return itsAge;
}

//Определение SetAge, открытой 
//Функция обеспечует доступа
void Cat::SetAge(int age)
{
itsAge=age;
}

//Оперделение метода Meow
void Cat::Meow()
{
  cout<<"Meow!!!"<<endl;
}

int main()
{
	setlocale(LC_ALL,"Rus");
    Cat F(5);
	F.Meow();
	cout<<"Кошка "<<endl;
	cout<<F.SetAge()<<"///"<<endl;
	F.Meow();
	F.SetAge(7);
	cout<<"Моя кот"<<endl;
	cout<<F.GetAge()<<"///"<<endl;



	getch();
	return 0;
}
Все компилируется через студио 2008. но на экран не чего не выводит. Помогите найти ошибку
MsWindows вне форума Ответить с цитированием
Старый 16.07.2011, 18:02   #2
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Не может этот код компилироваться, потому что вы вызываете:
Код:
SetAge()
А функция принимает как минимум 1 аргумент. И еще: если уж пользуетесь iostream - забудьте про conio.h. Вместо getch() есть cin.get().
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 16.07.2011, 18:30   #3
MsWindows
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 44
Вопрос

Цитата:
Сообщение от Сtrl Посмотреть сообщение
Не может этот код компилироваться, потому что вы вызываете:
Код:
SetAge()
А функция принимает как минимум 1 аргумент. И еще: если уж пользуетесь iostream - забудьте про conio.h. Вместо getch() есть cin.get().
Что мне здесь надо изменить можешь показать а то я тока ножичек не сильно еше понимаю
MsWindows вне форума Ответить с цитированием
Старый 16.07.2011, 18:39   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

в SetAge передать значение, в cout << F.SetAge() << endl ты ничего не передаешь.
coNsept вне форума Ответить с цитированием
Старый 16.07.2011, 20:34   #5
MsWindows
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 44
Вопрос

Цитата:
Сообщение от coNsept Посмотреть сообщение
в SetAge передать значение, в cout << F.SetAge() << endl ты ничего не передаешь.
Вот изменил все равно нечего не выводит на экран

Код:
#include <iostream>
#include <conio.h>
#include <locale.h>
using namespace std;
class Cat
{
public:
	Cat (int initialAge);      // Конструктор
	~Cat ();			      //  Деструктор
	int GetAge();            // Метод Доступа
	void SetAge (int age);  // Метод Доступа
	void Meow();
private:
	int itsAge;


};

//Конструктор класса Cat
Cat::Cat(int initialAge)
{
  itsAge=initialAge;

}

//Деструктор

Cat::~Cat()
{
}

//GetAge открытая функция обеспечения доступа
// возращает значение переменной-члена itsAge
int Cat::GetAge()
{
  return itsAge;
}

//Определение SetAge, открытой 
//Функция обеспечует доступа
void Cat::SetAge(int age)
{
itsAge=age;
}

//Оперделение метода Meow
void Cat::Meow()
{
  cout<<"Meow!!!"<<endl;
}

int main()
{
	setlocale(LC_ALL,"Rus");
    Cat F(5);
	F.Meow();
	cout<<"Кошка "<<endl;
	cout<<F.SetAge(7)<<"///"<<endl;
	F.Meow();
	F.SetAge(7);
	cout<<"Моя кот"<<endl;
	cout<<F.GetAge()<<"///"<<endl;



	getch();
	return 0;
}
MsWindows вне форума Ответить с цитированием
Старый 16.07.2011, 20:41   #6
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Данный код тоже не может проходить компиляцию - функция SetAge() возвращает значение типа void, для которого не определена операция << (а вы используете ее для вывода на экран).
P.S. Что я говорил про conio.h?
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 16.07.2011, 20:47   #7
MsWindows
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 44
Вопрос

Цитата:
Сообщение от Сtrl Посмотреть сообщение
Данный код тоже не может проходить компиляцию - функция SetAge() возвращает значение типа void, для которого не определена операция << (а вы используете ее для вывода на экран).
P.S. Что я говорил про conio.h?
так мне ваше удалить SetAge() ?
MsWindows вне форума Ответить с цитированием
Старый 16.07.2011, 20:48   #8
MsWindows
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 44
Вопрос

Цитата:
Сообщение от MsWindows Посмотреть сообщение
так мне ваше удалить SetAge() ?
Все работает??? а что можно место getch(); написать???
MsWindows вне форума Ответить с цитированием
Старый 16.07.2011, 20:48   #9
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от MsWindows Посмотреть сообщение
так мне ваше удалить SetAge() ?
А он вам нужен? Если да - зачем удалять? Если нет - зачем оставлять?
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 16.07.2011, 21:11   #10
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от MsWindows Посмотреть сообщение
Все работает??? а что можно место getch(); написать???
Скорей всего вместо SetAge вам требовалось использовать GetAge для вывода возраста в поток cout.

Кроме того, опережая события, хочу отметить, что функцию-член класса GetAge лучше объявлять следующим образом:


int GetAge() const;

В этом случае вы сможете ее вызывать идля константных объектов. Иначе если вы создадите константный объект Cat, вы даже не сможете получить "возраст" вашего объекта.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выводит на экран квадрат из * volery Общие вопросы C/C++ 16 26.04.2010 00:31
выводит на экран изображение (PASCAL) 0001 Фриланс 31 20.01.2010 18:13
Программа компилируется но не выводит результат в метку prikolist Общие вопросы C/C++ 2 24.03.2009 19:19
программа, которая выводит на экран одно из данных слов vados Паскаль, Turbo Pascal, PascalABC.NET 11 26.10.2007 23:47