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

Тема в разделе "Общие вопросы по С и С++", создана пользователем grokk, 11 май 2008.

  1. grokk

    grokk Гость

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

    Заранее спасибо за помощь)

    [codebox]class Data
    {
    public:
    virtual ~Data() {};
    virtual void CheckData() const=0;
    //virtual void Print() const=0;
    // const Data* operator+ (const Data*);
    };

    class Int:public Data
    {
    int i;
    public:

    Int (int int_num) {i=int_num;};
    void CheckData()const {
    cout<<"Int number "<<i<<endl;
    }
    };
    class Float:public Data
    {
    float f;
    public:
    Float (float float_num) {f=float_num;};
    void CheckData()const {
    cout<<"Float number "<<f<<endl;
    }
    };


    Data* InputData();[/codebox]


    [codebox]#include <iostream>
    #include <string>
    #include "data.h"
    #include "string.h"

    using namespace std;

    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;
    }[/codebox]
     
  2. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Джефф Элджер, библиотека программиста (http://rapidshare.com/files/43997307/c_biblioteka_programmista.rar)
    Стр. 162.
    Вот: http://www.cap-design.ru/ccc/129.php
     
  3. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Хотя лично мне вариант с case больше симпатизирует :(
     
Загрузка...
Похожие Темы - Перегрузка операторов полиморфизм
  1. lisica198808
    Ответов:
    0
    Просмотров:
    940
  2. MGeorge
    Ответов:
    0
    Просмотров:
    1.343
  3. sasha465
    Ответов:
    1
    Просмотров:
    1.458
  4. XADD
    Ответов:
    1
    Просмотров:
    1.102
  5. XADD
    Ответов:
    9
    Просмотров:
    2.529

Поделиться этой страницей