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

Перегрузка операторов и полиморфизм - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, есть ли в тексте указанное слово, и заключить его в квадратные скобки http://www.cyberforum.ru/cpp-beginners/thread8084.html
Дан многострочный текст. Определить, есть ли в нем указанное слово и заключить его в квадратные скобки.
C++ помогите с прогами Помогите с программами,или хотябі обьясните что нужно делать плиз:'( 1.Исходный текст записан на странице с числом символов в строке L. Переписать его на страницу с числом символов в строке M.Слова не разрывать. Считать, что текст помещается на странице целиком. 2.Поиск по шаблону: определить номер позиции в исходной строке, начиная с которой в строке содержиться шаблон S1*S2,где... http://www.cyberforum.ru/cpp-beginners/thread8083.html
C++ помогите с поразрядной сортировкой
необходимо отсортировать методом поразрядной сортировки слова естественного языка.никак не получается.не могу разобраться. жду от вас помощи.....
Сортировка двумерного массива C++
Подскажите как отсортировать двумерный массив по возрастанию. Например дан такой массив двумерный: 9 7 4 1 2 3 5 5 5 Должен получится вот такой: 1 2 3 5 5 5
C++ Интерпретация морского боя http://www.cyberforum.ru/cpp-beginners/thread8029.html
Интерпретация морского боя. Доброго времени суток. Без долгих вступлений к сути проблемы. Нужно в короткие сроки написать программу морской бой на С++, отличающуюся от оригинала 2 вещами: 1.Пушка стреляет не точно в заданный квадрат, а с равной долей вероятности поражает элемент квадрата 3х3, центром которого была выбранная пользователем/компьютером точка. 2.После промаха пользователя на...
C++ Написать программу на С++, которая моделирует АЦП Нужно Написать программу на С++, которая моделирует АЦП с разрядностью т=4,8,16,24 бит. Блок АЦП должен быть формлен в виде подпрограммы и иметь собственное графическое изображение. Помогите пож-та! подробнее

Показать сообщение отдельно
grokk
0 / 0 / 0
Регистрация: 13.05.2008
Сообщений: 3

Перегрузка операторов и полиморфизм - C++

13.05.2008, 23:20. Просмотров 1813. Ответов 1
Метки (Все метки)

Есть массив указателей Data* в каждой ячейке которого указатель на string,int или float
Никак не получается перегрузить оператор + так чтобы string+string оставался string int+float оставался float int+int -int string+int/float-string

Заранее спасибо,буду рад любой помощи а то уже всю голову изломал

код
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#ifndef Data_Lst_H
#define Data_Lst_H
#include<iostream>
#include<string>
using namespace std;
enum Type {kInteger,kFloat,kString};
class Data
 {
public:
virtual ~Data() {};
virtual Type CheckData() const=0;
//virtual void Print() const=0;
// virtual Data& operator+(const Data&) = 0;
};
class Int:public Data
 { 
int i;
 Type int_type;
public:
 Int (int int_num)
 {
 i=int_num;
 int_type=kInteger;
 }
 Int (Int& data_int)
 {
 i=data_int.i;
 int_type=data_int.int_type;
 }
 Type CheckData()const { 
 cout<<"Int number "<<i<<endl;
return int_type;
 }
 
// int GetValue()const {return i;}
 // Data& operator+(const Data&);
 
 };
class Float:public Data
 { 
float f;
 Type float_type;
public:
 Float (float float_num)
 {
 f=float_num;
 float_type=kFloat;
 }
 Type CheckData()const 
 { 
 cout<<"Float number "<<f<<endl;
return float_type;
 }
// float GetValue()const {return f;}
// Data& operator+(const Data&)
};
 Data* InputData();
#endif
 
Data* InputData()
 {
int flag,int_num,count=0;
float float_num;
char str[20];
char c;
 Data* item;
do
{
 cout<<"(1)int (2)float (3)string: ";
 cin>>flag;
 }while (flag<1 || flag>3);
switch (flag)
 {
case 1:{
 cout<<"Enter int number ";
 cin>>int_num;
 item=new Int(int_num);
return item;
break;
 }
case 2:{
 cout<<"Enter float number ";
 cin>>float_num;
 item=new Float(float_num);
return item;
break;
 }
case 3:{
 cout<<"Enter String. Max lenght 20 ";
 cin>>str;
 item=new String(str);
return item;
break;
 }
 }
return NULL;
 }
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru