Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнить два значения, Задачу решить с исп классов 
V
    Опции темы
SHUSTER
Дата 22.6.2011, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Код

#include "conio.h"
#include <iostream>
#include "stdafx.h"

using namespace std;

class CMyClass{
private:
    char *name;
    int year;
    friend void comp(const CMyClass, const CMyClass);

public:
    CMyClass(void); // конструктор
    CMyClass(const CMyClass&); // конструктор копии
    ~CMyClass(void); // деструктор
    void vvod();
   
};

CMyClass::CMyClass(void)
{
    cout << "VVEdite imya: ";
    cin >> name;
    cout << "\n VVEdite god rozhdeniya: ";
    cin >> year;
}

void comp(const CMyClass, const CMyClass)
{
    if (s1.year > s2.year)
    {
        cout << s1.name << " starshe chem " << s2.name << "\n";
        cout << s1.name << " " << s1.year << "\n";
        cout << s2.name << " " << s2.year;
    }
    if (s1.year < s2.year)
    {
        cout << s2.name << " starshe chem " << s1.name << "\n";
        cout << s1.name << " " << s1.year << "\n";
        cout << s2.name << " " << s2.year;
    }
    else
    {
        cout << "Oba 4ela odinakovogo goda rozhdeniya";
        cout << s1.name << " " << s1.year << "\n";
        cout << s2.name << " " << s2.year;
    }
};

CMyClass::~CMyClass(void)
{
    delete [] name;
}

int _tmain(int argc, _TCHAR* argv[])
{
    CMyClass s1, s2;
    cin >> s1;
    cin >> s2;
   comp (s1, s2);   
    _getch();
    return 0;
};


Вот что сам смог наваять. Объясните почему ВижуалСтудио пишет что не знает  таких "дел" как s1 и s2? И как написать код правильно?
Предполагаю что нужно бы ещё перегрузить оператор [] и какие-то ещё. Трабл - практически не понимаю зачем эта перегрузка надо (читаю в книгах и вижу фигу  smile )

Это сообщение отредактировал(а) SHUSTER - 22.6.2011, 08:28
PM MAIL ICQ Jabber   Вверх
triclosan
Дата 22.6.2011, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



Цитата(SHUSTER @  22.6.2011,  08:25 Найти цитируемый пост)
    
cin >> s1;
cin >> s2;


Надо перегрузить оператор >> для такого и сделать функцию перегрузки другом класса

PM MAIL   Вверх
SHUSTER
Дата 22.6.2011, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Код

istream &operator>>(/* какие здесь будут параметры? */)

/* сам код перегрузки оператора? */

/* что будет возвращаться? */


Подскажите 
triclosan, по этим вопросам:
1. какие здесь будут параметры?
2. сам код перегрузки оператора?
3. что будет возвращаться?
PM MAIL ICQ Jabber   Вверх
mes
Дата 22.6.2011, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(SHUSTER @  22.6.2011,  07:25 Найти цитируемый пост)

не знает  таких "дел" как s1 и s2?
Код

void comp(const CMyClass, const CMyClass)


ну и где имена аргументов (s1 и s2), которые испоёьзуются в этой функции ?



--------------------
PM MAIL WWW   Вверх
triclosan
Дата 22.6.2011, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



Код

istream &operator>>(istream &is, CMyClass &my)
{
cout << "Enter data";
cin >> my.name >> my.year ;
return is;
}


PM MAIL   Вверх
mes
Дата 22.6.2011, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(SHUSTER @  22.6.2011,  07:25 Найти цитируемый пост)
 практически не понимаю зачем эта перегрузка надо

http://liveworkspace.org/code/076cb30bb590...c2e450df9c16fe2


--------------------
PM MAIL WWW   Вверх
SHUSTER
Дата 22.6.2011, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



mes, надо писать так? - 
Код

void comp(const CMyClass &s1, const CMyClass &s2)
 в объявлении и описании конструктора?


PM MAIL ICQ Jabber   Вверх
SHUSTER
Дата 22.6.2011, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Фу, блин, экзамен сдал!!!
Всем спасибо за посильную помощь - без Вас, форумчане, у меня б ничё не вышло.
PM MAIL ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.