3 / 3 / 0
Регистрация: 02.01.2013
Сообщений: 116
1

Перегрузка оператора []

04.04.2013, 01:22. Показов 1173. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: перегрузить оператор [] для возведения в степень дроби.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void CDrib::operator[](int x)
{
    m_nChis = pow(m_nChis*1.0, x*1.0);
    m_nZn = pow(m_nZn*1.0,x*1.0);
 
    if (x<0)
    {
        int nTmp = m_nChis;
        m_nChis = m_nZn;
        m_nZn = nTmp;
    }
 
}
ета ф-я в Visual Studio работает без проблем.
вот как я её вызываю в C++ builder:
C++
1
2
        CDrib dr(1,2);
       dr[2]; //Ошибка:  [C++ Error] Unit1.cpp(52): E2093 'operator*' not implemented in type 'CDrib' for arguments of the same type
Не пойму в чем проблема.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2013, 01:22
Ответы с готовыми решениями:

Перегрузка оператора равно
Как перегрузить оператор равно в с++ для комплексных чисел? Вот объявленный класс: class...

Указатель на Char. Функция присваивания и перегрузка оператора "="
В общем дело такое. При работе с указателем на char надо использовать глубокое копирование. И у...

Перегрузка оператора сравнения ( no match for 'operator==' )
Приветствую! У меня было задание в институте реализовать класс &quot;Вектор &quot; с соответствующими...

Перегрузка оператора +
Добрый день)Почему то не работает перегрузка оператора сложения) #include &lt;iostream&gt; #include...

1
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
07.04.2013, 00:41 2
Цитата Сообщение от Pein95 Посмотреть сообщение
Не пойму в чем проблема.
Оператор перегружается правильно. А ошибка заключается в том, что эта функция не описана в прототипе класса.
То есть эта функция должна быть членом класса, в разделе public.

Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class TOverloadTest {
    int m_i_Value;
 
public:
    TOverloadTest(const int iValue) : m_i_Value(iValue) {
 
    }
    void TOverloadTest:: operator[](const int iValue) {
        m_i_Value *= iValue;
    }
    const int &GetValue()const {
        return m_i_Value;
    }
};
 
    TOverloadTest ATest(5);
    ATest[5];
    ShowMessage(ATest.GetValue());
0
07.04.2013, 00:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2013, 00:41
Помогаю со студенческими работами здесь

Перегрузка оператора <<
Здравствуйте, форумчане. Нужно в классе перегрузить оператор &lt;&lt;. Так не получается. В чем...

Перегрузка оператора +
не получается в своем классе перегрузить оператор + :( пишет &quot;error C2804: бинарный &quot;operator +&quot;...

Перегрузка оператора +=
Есть два класса: Vec4(вектор из 4х float) и Mat4(вектор из 4х Vec4). Проблема в том что при...

Перегрузка оператора ++
выводит не то значение привет. нужна Ваша подсказка. листинг из учебника: (тема: перегрузка...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru