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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, есть ли в тексте указанное слово, и заключить его в квадратные скобки http://www.cyberforum.ru/cpp-beginners/thread8084.html
Дан многострочный текст. Определить, есть ли в нем указанное слово и заключить его в квадратные скобки.
C++ Интерпретация морского боя Интерпретация морского боя. Доброго времени суток. Без долгих вступлений к сути проблемы. Нужно в короткие сроки написать программу морской бой на С++, отличающуюся от оригинала 2 вещами: 1.Пушка стреляет не точно в заданный квадрат, а с равной долей вероятности поражает элемент квадрата 3х3, центром которого была выбранная пользователем/компьютером точка. 2.После промаха пользователя на... http://www.cyberforum.ru/cpp-beginners/thread8029.html
Регулярные выражения. Конечные автоматы. Распознаватель C++
Возможность использовать функции Abs, Tan в выражениях помогите... вот пример программы: // Calculator // 1. Gramma // Expr ::= // Expr + Term // Expr - Term // Term
Выпуклая оболочка C++
Дан эталонный проект "Выпуклая оболочка" // Pol.cpp : Defines the entry point for the console application. // //#include "stdafx.h" #include <iostream.h> #include <math.h> //Klass, opisyvauchiy tochku (Point) na ploskosti (R2) class R2Point
C++ COM C++, OLE и DDE http://www.cyberforum.ru/cpp-beginners/thread7984.html
Подскажите пожалуйста. Сможем ли мы из программы, написанной на MapBasic, вызвать программный модуль, написанный на С++ и принять из него данные (например достаточно большой массив), используя OLE либо DDE ?? Причем без создания промежуточных файлов.
C++ Написать программу, в которой объединение используется для хранения информации об одной из геометрических фигур НАРОООООД!!!!Выручьте!!!! "сделать на Borland C++ под DOS или Microsoft Visual C++ консольное приложение (Win 32 Console Application). Написать программу, в которой объединение используется для хранения информации об одной из геометрических фигур: трапеции или треугольнике. Программа вычисляет площадь данных фигур и выводит результат. Предусмотреть меню. Результаты работы программы... подробнее

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

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

13.05.2008, 23:20. Просмотров 1796. Ответов 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;
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru