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

Как перегрузить оператор индексации для указателя - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Каково назначение функции malloc http://www.cyberforum.ru/cpp-beginners/thread686014.html
Вот решенная задача: #include <stdio.h> #include <stdlib.h> #include <math.h> struct athlet { long m; long pow; athlet()
C++ Число Фибоначчи и рекурсия: код выдает неверные результаты Функция возвращает значение типа int, принимает 2 переменных типа int и 1 типа bool. Первая переменная - номер числа из ряда Фибоначчи которое нужно найти. Если bool будет true, то значение второй переменной по окончанию программы должно быть равно количеству рекурсивных вызовов функции. Еcли значение переменной типа bool = false,то не изменяем значение второй переменной. int... http://www.cyberforum.ru/cpp-beginners/thread686008.html
Сформировать и ввести упорядоченный односвязный список без использования list C++
Подскажите, как сформировать и ввести упорядоченный односвязный список без использования list. Заранее спасибо!!!
C++ Найти объем V, массу m, и площадь S основания слитка
На практике в универе дали задачу, помогите с решением для C++ Известны плотность p, высота h, и радиус основания R циллиндрического слитка. Найти объем V, массу m, и площадь S основания слитка. Входные данные: p, h, S Выходные данные: S, V, m формулы: S=2*pi*R V=pi*R^2h
C++ После какого уровня c++ начинать изучать php http://www.cyberforum.ru/cpp-beginners/thread685972.html
Народ снова здравствуйте у меня снова вопрос вообщем я хочу изучить C++ и PHP хотел одновременно но на форуме мне сказали изучай сперва С++ так вот после какого времени изучения С++ можно изучать PHP ( одновременно досовершенствувуясь в с++)
C++ Нужно ли программисту знать математику (если да то какую) Здравствуйте народ у меня к вам вот такой вопрос нужно ли программисту знать математику(если да то какую?) просто начал изучать C++ по книге "Программирование.Принципы и практика использования C++" а многие говорят что потом нада будет всякие алгоритмы и т.д так вот скажите что нужно читать по математике, алгоритмам, структурам данных(четам еше есть не знаю) ? подробнее

Показать сообщение отдельно
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
01.11.2012, 14:23     Как перегрузить оператор индексации для указателя
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#define HIGH_H 0
#define LOW_H 1
#define OPEN_H 2
#define CLOSE_H 3
#define VOLUME_H 4
#define HER_H 5
class Candle
{
    double high,low,open,close,volume;
    QDateTime time;
public:
    Candle(double _close,double _open,double _high,double _low,double _volume,QDateTime _time);
    Candle::Candle();   
    double getClose();
    double getHigh();
    double getLow();
    double getOpen();
    double getVolume()
    {
        return volume;
    }
    QDateTime getTime();
    void setClose(double _close)
    {
        close=_close;
    }
    double operator[](int type)
    {       
        printf("\n Candle = %d",type);
        switch(type)
        {
          case HIGH_H :
            return high;
          case LOW_H :
              return low;
          case OPEN_H :
              return open;
          case CLOSE_H :
              return close;
          case VOLUME_H :
              return volume;
          default :
              return close;
        }
 
    }   
    void print();
    ~Candle(){};
};
 
 
 
class Data
{
protected:
    QVector<Candle> vec;
    int currPos;
public:
    Data(Data * _dt)
    {
        vec = _dt -> getVec();
    }
    Data(){};
    Data(QVector<Candle> &_vec)
    {
        vec = _vec;
        currPos = vec.size();
        printf("\n vec.size() = %d   currPos = %d",vec.size(),currPos);
    }
    Candle& operator[](int i)
    {
        printf("\n Data i = %d   currPos = %d  vec,sie()= %d",i,currPos, vec.size());
        if(i < currPos)
        {
            printf("\n next data");         
            return vec[i];
        }
        else
            return Candle :: Candle();
    }       
    int size()
    {
        if(currPos <= vec.size())
            return currPos;
        else
            return vec.size();
    }
    int getCurrPos()
    {
        return currPos;
    }
    QVector<Candle>& getVec()
    {
        return vec;
    }   
};
 
int main(int argc, char *argv[])
{   
    QApplication app(argc, argv);
    QVector <Candle> vec;
    Candle c1(1,2,3,4,5, QDateTime::fromString("M1d1y9800:01:02","'M'M'd'd'y'yyhh:mm:ss"));
    Candle c2(6,7,8,9,10, QDateTime::fromString("M1d1y9800:01:02","'M'M'd'd'y'yyhh:mm:ss"));
    Candle c3(11,12,13,14,15, QDateTime::fromString("M1d1y9800:01:02","'M'M'd'd'y'yyhh:mm:ss"));
    vec.push_back(c1);
    vec.push_back(c2);
    vec.push_back(c3);
    Data dt(vec);
    //Data *dt = new Data(vec); 
    printf("\n >>>>%f", dt[0][CLOSE_H]); 
    return app.exec(); 
 
}
 
Если переменную dt объявляю как объект, то все пашет, а если объявляю как указатель на объект фигня получается((((помогите, плиз!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru