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

Перегрузка операторов и абстрактный класс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Скип-список http://www.cyberforum.ru/cpp-beginners/thread970941.html
не получается исправить ошибку. Кто знает решение? /* skip list */ #include <stdio.h> #include <stdlib.h> /* define data-type and compare operators here */ typedef int T; /* type of item to be stored */ #define compLT(a,b) (a < b) #define compEQ(a,b) (a == b)
C++ Задача на циклы. Дано натуральное n. Вычислить Добрый всем день! Необходима помощь с решением этого цикла: Дано натуральное n. Вычислить: 1/22 + 1/42 + ... + 1/(2n) n . http://www.cyberforum.ru/cpp-beginners/thread970935.html
Как из программы считать данные с сайта? C++
К примеру: при запуске программы нужно получить данные с сайта прогноза погоды(допустим влажность,давление,ветер).Как это сделать?Есть какие-либо функции?
Перевод с Pascal на C++ C++
Помогите с программой нужно переделать ее на C ++ builder Program F_An; uses CRT; type complex = record re, im: real; end; type Opis_comp = record nam:char;a,b:integer; par: real; end; const n=2; Ninp=1; Nout=2; Nf=21; f1=0.01; f2=100; Zapis: array of Opis_comp= ((nam: 'R'; a:1; b:2; par:1),
C++ IntelliSense: требуется выражение http://www.cyberforum.ru/cpp-beginners/thread970912.html
Подскажите, почему выдает ошибку? Объявление textColor: SDL_Color textColor;
C++ Ошибка при наследовании класса Всем доброго времени суток, пытаюсь отнаследовать класс, вот такой код я смастерил: #ifndef CLASS_H_ #define CLASS_H_ class stack { protected: int *turn; int count, size; public: подробнее

Показать сообщение отдельно
Oberyn Martell
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
07.10.2013, 10:56     Перегрузка операторов и абстрактный класс
Имеется два класса (DecString и SymbString), наследуемых от абстрактного AString. Можно ли как-нибудь перегрузить операции - и =, чтобы работа с обоими классами осуществлялась в одном методе Operate класса Action?

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
class AString {
public:
    virtual ~AString() {};
    virtual const std::string& GetName() const = 0;
    virtual const std::string& GetVal() const = 0;
    virtual const char& GetTip() const = 0;
};
 
class DecString : public AString {
    std::string name;
    std::string val;
    char tip;
public:
    DecString(std::string _name): name(_name), tip('d') {}
    DecString(std::string _name, std::string);
    const std::string& GetName() const { return name; }
    const std::string& GetVal() const { return val; }
    const char& GetTip() const { return tip; }
    void SetVal(std::string _val) { val = _val; }
    int GetSize() const { return sizeof(val); }
    DecString (DecString& pObj);
    DecString& operator= (DecString& pObj);
    DecString operator- (DecString& pObj);
};
 
class SymbString: public AString {
    std::string name;
    std::string val;
    char tip;
public:
    SymbString (std::string _name) : name(_name), tip('s') {}
    SymbString (std::string _name, std::string _val) : name(_name), val(_val), tip('s') {}
    const std::string& GetName() const { return name; }
    const std::string& GetVal() const { return val; }
    const char& GetTip() const { return tip; }
    int GetSize() const { return val.size(); }
    void SetVal(std::string _val) { val = _val; }
    SymbString (SymbString& pObj);
    SymbString& operator= (SymbString& pObj);
    SymbString operator- (SymbString& pObj);
};
 
class Raznost : public Action {
    std::string name;
public:
    Raznost() : name("Разность двух элементов") {}
    void Operate(AString*);
    const std::string& GetName() const { return name; }
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru