Форум программистов, компьютерный форум CyberForum.ru

Реализация отношений между объектами - C++

Восстановить пароль Регистрация
 
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
07.02.2014, 13:23     Реализация отношений между объектами #1
Здравствуйте.
Есть задумка организовать класс или что-то в этом роде между объектами в программе, который бы отражал их взаимные отношения. Поясню на примере.
Есть А и В. Нужно указать их отношения, что А больше В.
Как это реализовать?
Чтобы существовал некоторый класс(?), который указывал бы отношения между определёнными объектами.
И выглядело бы это в программе примерно так:
"отношение"(А,В)=больше;
или
А"отношение"В=больше;
Как это реализовать ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
07.02.2014, 13:58     Реализация отношений между объектами #2
Как это реализовать ?
А так не подойдет ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
class A
{
      private:
              int data;
      public:
             A(int dat) : data(dat){}
             int getData(){ return data; }             
};
 
class B
{
      private:
              int data;
      public:
             B(int dat) : data(dat){}
             int getData(){ return data; }             
};
 
int main()
{
  A a(5);
  B b(10);
  
  if(a.getData() > b.getData())
     std::cout << " a > b";
  else
     std::cout << " a <= b";
  
  system("PAUSE");
  return 0;
}
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
07.02.2014, 14:15  [ТС]     Реализация отношений между объектами #3
egor2116, Нет, это совсем не то. Нужно ввести понятие "отношение" между объектами.
Оно должно хранится в отдельной переменной соответствующей определённому "отношению" между А и В.
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
07.02.2014, 14:20     Реализация отношений между объектами #4
sergey.shuvalov, Чтобы объекты можно было сравнивать - они должны иметь некую общую сущность. Логично было бы выделить её в базовый класс, в нем реализовать методы сравнения(или перегрузить соответствующие операторы), а уже от него унасладовать ваши два класса.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
07.02.2014, 14:26     Реализация отношений между объектами #5
Наверное как то так или я не понимаю что вам надо и главное зачем ?
Как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
 
class Base
{
      private:
                int data;
      public:
             Base(int dat) : data(dat){}
             int getData(){ return data; }
             virtual ~Base(){}
};
 
class A : Base
{
      public:
             A(int dat) : Base(dat){}           
};
 
class B : Base
{
      public:
             B(int dat) : Base(dat){}           
};
 
class Compare
{
    public:
           static bool compare(Base * a, Base * b)
           {
              return  a->getData() < b->getData();
           }
};
 
int main()
{
    A * a = new A(5);
    B * b = new B(10);
  if( Compare::compare((Base *)a, (Base *)b))
     std::cout << " a < b " << std::endl;
  else
     std::cout << " a >= b " << std::endl;
  
  system("PAUSE");
  return 0;
}
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
07.02.2014, 14:48  [ТС]     Реализация отношений между объектами #6
Поясню.
Обычно условие в программе ограничивается, ну например x=7;
Хочется расширить варианты условий.
"отношение"y(А,В)=z;
Вот каким образом это сделать - вот в чём вопрос.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.02.2014, 14:56     Реализация отношений между объектами #7
АБК(абстрактный базовый класс) в помощь, и 2 производных класса от него, пишешь метод в котором по какому-либо критерию(принадлежащему абк) сраниваешь, будет потом "методСравнения"(типАБК*, типАБК*){if ()... return true;} к примеру так.

Добавлено через 26 секунд
если я правльно понял желание автора ...
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
07.02.2014, 14:57  [ТС]     Реализация отношений между объектами #8
Поясню.
Обычно условие в программе ограничивается, ну например x=7;
Хочется расширить варианты условий.
"отношение"y(А,В)=z;
Вот каким образом это сделать - вот в чём вопрос.
Причём отношение может быть любым. Например "отношение" - вкуса.
тогда вкус(А,В)=слаще
то есть А слаще В.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.02.2014, 15:19     Реализация отношений между объектами #9
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Обычно условие в программе ограничивается, ну например x=7;
учитесь норм выражать мысли.
C++
1
2
3
4
5
6
7
8
string getMoreSugar(abstractBaseClass& A, abstractBaseClass& B)
{
string str="A слаще";
if (A.sugar()>B.sugar()) // скажем 2 метода возвращают содержание сахара.
return str;
else
string str="B слаще";
}
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
07.02.2014, 15:31  [ТС]     Реализация отношений между объектами #10
dzrkot, Увы, совсем не то. Тяжело понять мой вопрос? Тогда не пытайтесь дать неправильный ответ. Смысл решения, если условие не понято? Если не понятно, то задавайте наводящие вопросы и старайтесь при этом писать без ошибок, чтобы в свою очередь быть понятым.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.02.2014, 15:41     Реализация отношений между объектами #11
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
dzrkot, Увы, совсем не то. Тяжело понять мой вопрос? Тогда не пытайтесь дать неправильный ответ. Смысл решения, если условие не понято? Если не понятно, то задавайте наводящие вопросы и старайтесь при этом писать без ошибок, чтобы в свою очередь быть понятым.
мб вы сформулируете по человечески свой вопрос? Наверное если вам никто ещё не дал правильный ответ, то вы не в состоянии выразить свою мысль нормально, особенно х=7 меня убило.

Добавлено через 2 минуты
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
И выглядело бы это в программе примерно так:
"отношение"(А,В)=больше;
или
А"отношение"В=больше;
как вы себе это представляете, это синтаксически не правльно, т.к. написана чушь
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
07.02.2014, 15:46  [ТС]     Реализация отношений между объектами #12
dzrkot, прикидываетесь или на самом деле?
Речь идёт о концепции, которую хотелось бы выразить через существующий синтаксис C++.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
07.02.2014, 15:57     Реализация отношений между объектами #13
класс у которого метод отношение(a,b); устанавливает какую-то свою абстрактную "иерархию" между этими классами ... ?
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
07.02.2014, 16:06  [ТС]     Реализация отношений между объектами #14
между какими этими?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 16:38     Реализация отношений между объектами
Еще ссылки по теме:

Свойства отношений C++
C++ Отношения между классами и объектами
C++ Типы связей между объектами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dzrkot
07.02.2014, 16:38     Реализация отношений между объектами
  #15

Не по теме:

Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
между какими этими?
ясно, досвидания.

Yandex
Объявления
07.02.2014, 16:38     Реализация отношений между объектами
Ответ Создать тему
Опции темы

Текущее время: 20:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru