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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
#1

перегрузка [] - C++

01.02.2013, 15:07. Просмотров 766. Ответов 20
Метки нет (Все метки)

Как перегрузить operator[] так, чтобы когда я модифицировал массив то вызывалась простая версия, а когда просто выводил то const версия?

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
#ifndef array_h
#define array_h
 
template<typename T>
class Array {
public:
    Array();
    Array(int);
    ~Array();
    T &operator[](int);
protected:
    void add_new_elem(int);
    T* mElem;
    int mSize;
};
 
 
template<typename T>
Array<T>::Array()
{
    mSize = 1;
    mElem = new T[mSize];
}
 
template<typename T>
Array<T>::Array(int size)
{
    mSize = size;
    mElem = new T[mSize];
}
 
template<typename T>
Array<T>::~Array()
{
    delete [] mElem;
}
 
template<typename T>
void Array<T>::add_new_elem(int newSize)
{
    T* newElem = new T[newSize];
 
    for(int i=0;i<newSize;i++)
        newElem[i] = mElem[i];
 
    mSize = newSize;
    delete [] mElem;
    mElem = newElem;
}
 
template<typename T>
T &Array<T>::operator[](int x)
{
    if(x>=mSize)
        add_new_elem(x+1);
    return (mElem[x]);
}
 
 
#endif
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 15:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перегрузка [] (C++):

Перегрузка в виде метода VS Перегрузка в виде функции друг - C++
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде функции друг? Добавлено через 4...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Перегрузка [][] - C++
Возможно ли для данного класса обеспечить перегрузку жвойных скобок с тем, чтобы в программе можно было использовать выражения типа: ...

Перегрузка в c++ - C++
Собственно для чего нужна перегрузка функций или операторов ?

перегрузка >> и << - C++
Решил попробовать перегрузить операции ввода и вывода,почему то выводятся 0, вместо нужных значений,подскажите в чем косяк #include...

Перегрузка new - C++
Дайте примеры на перегрузку. #define n ... // Некая целая константа class a { ... }; // Некий класс a *p=new a; // Здесь должен быть...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
04.02.2013, 21:41 #16
да что там лист, тотже вектор тока
C++
1
#define mylist vector<string>
где mylist макрос-тип
silent_1991
05.02.2013, 07:52
  #17

Не по теме:

alexpac26, макросы в плюсах не кошерно. typedef достаточно.

The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
05.02.2013, 20:07  [ТС] #18
Не хочу создавать другую тему, так как это и по сей теме относится) Хочу перегрузить операторы <,>, <=,> = но не знаю как корректно сделать сравнение массивов. Может подскажете как?
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.02.2013, 20:17 #19
The_bolT, представьте, что массив - это число, каждый элемент которого - цифра в некоторой системе счисления, и подумайте, как сравниваются обычные числа.
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
05.02.2013, 20:26  [ТС] #20
silent_1991, Я еще больше вдумуюся в вашу фразу, тем больше боюсь) Можно как-то по конкретнее написать, что вы этим имели в виду?)
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
05.02.2013, 20:30 #21
ну для начала проверь размеры массивов
если они разные ловить нечего выходим
если одинаковые начинаем сравнивать поэлементно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2013, 20:30
Привет! Вот еще темы с ответами:

Перегрузка ++ и -- - C++
У меня было задание: Напишите программу работы со временем, в которой используются перегруженные операции ++ и --, которые работают в...

Перегрузка << и >> - C++
помогите сделать так чтобы &lt;&lt; и &gt;&gt; в int main() работали... Printers.h class Printers { public: ...

Перегрузка в c++ - C++
Зачем нужно использовать перегрузку в c++? Этот вопрос будет у меня на экзамене, поэтому хочу услышать ваши версии

перегрузка [] - C++
Здарова никак не могу перегрузить имеется класс Int2 моделирующий int я перегрузил rvalue тоесть при вызове int a; Int2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.02.2013, 20:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru