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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2013, 00:29   #1
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию Классы

Разбираюсь с класами народ подскажыте почему не работает код
Код:
#include <string>
#include <conio.h>
#include <iostream>

using namespace std;

class Student
{ 
 private:
   string name;
   int age, course;
 public:
   void setData();
   void getData();
  };
void Student::setData()
{
 cout<<"Enter name"<< endl;
 cin>>name;
}
void Student::getData()
{
 cout<< " Name=" <<name<<";"<<endl;
 cout<< " Age=" <<age;
}

//-------------------------------------------------
int main()
{
  Student Olga;   
  Student* Nick;  
  Olga.setData(); 
  Olga.getData();
  Nick=new Student; 
  Nick->setData(); 
  Nick->getData();
  getch();
        return 0;
}
ввожу имя а ейдж сразу выдает причом в милионах ещо и отрицательный
_yaroslav_ вне форума Ответить с цитированием
Старый 11.02.2013, 01:07   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
в милионах ещо и отрицательный
вы не инициализировали свойство age, поэтому в нем лежит мусор. Также вы нигде не перезаписываете его. В функции setData у вас только вводится имя, зато потом вы сразу вызываете функцию getData, в которой на экран должен вывестись age. Как вы думаете, что вам должна вывести прога, когда вы ничего туда еще не ввели?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 11.02.2013, 04:01   #3
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

Вот так работает
Код:
#include <string>
#include <conio.h>
#include <iostream>

using namespace std;

class Student
{
 private:
   string name;
   int age, course;
 public:
   void setData();
   void getData();
  };
void Student::setData()
{
 cout<<"Enter name"<< endl;
 cin>>name;
 cout<<"Enter age"<< endl;
 cin>>age;
 cout<<"Enter course"<< endl;
 cin>>course;
}
void Student::getData()
{
 cout<< " Name=" <<name<<";"<<endl;
 cout<< " Age=" <<age<<";"<<endl;
 cout<< " Course="<<course<<";"<<endl;
}

//-------------------------------------------------
int main()
{
  Student Olga;
  Student* Nick;
  Olga.setData();
  Olga.getData();
  Nick=new Student;
  Nick->setData();
  Nick->getData();
  getch();
        return 0;
}
Но у меня вопрос будет ли это ооп ? или мне надо для вывода age и course другую функцыю аналогичную setData зделать?
_yaroslav_ вне форума Ответить с цитированием
Старый 11.02.2013, 09:23   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
будет ли это ооп ?
У тебя есть класс значит это ООП.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.02.2013, 17:59   #5
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

страно,а нас учат мол иерархия ,наследывание и только потом класы
_yaroslav_ вне форума Ответить с цитированием
Старый 11.02.2013, 18:04   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наследование это разновидность отношений классов. Все равно атомарной единицей ООП является класс.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.02.2013, 22:52   #7
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

а можно проще,тут наследывание есть?))
_yaroslav_ вне форума Ответить с цитированием
Старый 11.02.2013, 23:12   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В твоем примере нет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2013, 16:02   #9
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

я не совсем врубаюсь что это как его добавить?
_yaroslav_ вне форума Ответить с цитированием
Старый 12.02.2013, 16:14   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
я не совсем врубаюсь что это как его добавить?
Что - "это"?
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы VitalikVer Visual C++ 3 17.05.2012 20:50
Классы VitalikVer Помощь студентам 0 17.05.2012 16:28
классы в C++ baizhik_street Общие вопросы C/C++ 4 27.11.2011 18:35
классы Lucky777 Общие вопросы по Java, Java SE, Kotlin 1 13.10.2011 23:36