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

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

Войти
Регистрация
Восстановить пароль
 
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
#1

Возможность для 2**I отрабатывать в виде вызова mypow(2, I) - C++

11.04.2013, 21:34. Просмотров 269. Ответов 2
Метки нет (Все метки)

Привет всем. В книге Страуструпа, есть такая задачка:
Определите класс Index для хранения индекса функции возведения в степень mypow(double, Index).
Найдите возможность для 2**I отрабатывать в виде вызова mypow(2, I).
По сложности стоит (*1.5), т.е не сложная. Но я что то не могу её решить, кроме как так:
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
#include <iostream>
 
class Index
{
    int _idx;
 
    double mypow(double val, Index idx) { return powf(val, idx._idx); }
 
public:
    Index(int i = 0): _idx(i) { }
 
    friend double operator* (double, Index);
};
 
double operator* (double val, Index idx)
{
    return idx.mypow(val, idx);
}
 
#define Index Index*
 
int main()
{
    Index I;
 
    2 ** I;
 
    system("PAUSE");
    return 0;
}
Мне ничего в голову не приходит, понятно конечно что это полная чушь, которая даже не будет работать. Подскажите пожалуйста. Зарание спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2013, 21:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возможность для 2**I отрабатывать в виде вызова mypow(2, I) (C++):

оформить решение в виде функции следующими способами: 1. функция расположена после ее вызова; 2. функция расположена после до ее вызова; 3. функ - C++
оформить решение в виде функции следующими способами: 1. функция расположена после ее вызова; 2. функция расположена после до ее...

нужно чтобы функция располагалась до ее вызова, после ее вызова и в другом файле. Как это сделать? - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int n, *c; void fun(int a, int b) { for (int i = 0; i &lt;...

Написать функцию mypow для расчета степени n натурального числа a - Matlab
Подскажите как написать решение задачи двумя способами: итеративно и рекурсивно. Заранее спасибо.

Написать рекурсивную функцию mypow для расчета степени n натурального числа a. - Matlab
1. Написать рекурсивную функцию mypow для расчета степени n натурального числа a. помогите пожалуйста, я пыталась написать, но у меня...

Возможность вызова функции через XML-RPC из HTML/JavaScript - Python
Здравсвуйте, Вопрос: Возможен ли вызов функции через XML-RPC из HTML/JavaScript. Подробнее: Есть такой код (Его я сам собрал, но...

Есть ли возможность вызова пункта меню "изменить" по хоткею? - Windows 10
Думаю этот вопрос подойдет не только для вин 10 но сейчас у меня именно она, в общем в чем суть хотелось бы узнать есть ли возможность...

2
anmartex
...
1706 / 1199 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
12.04.2013, 05:40 #2
SERUYBKR, define-ом вы себе выстрелили себе в ногу. Посмотрите, вы объявили Index* I, т.е. указатель. А на что указывает ваш указатель? Ещё по поводу вашего метода mypow, вы зачем вторым параметром объект того же класса передаёте?
Я бы сделал так:
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
#include <iostream>
#include <cmath>
 
class Index
{
    protected:
        int _idx;
 
    public:
        Index(int i = 0): _idx(i) { }
 
        double mypow(double val) const
        {
            return powf(val, _idx);
        }
 
        const Index& operator * () const
        {
            return *this;
        }
};
 
double operator* (double val, const Index& idx)
{
    return idx.mypow(val);
}
 
int main()
{
    Index I(10);
 
    std::cout << (2 ** I) << std::endl;
 
    return 0;
}
Результат выполнения на liveworkspace.org
1
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
12.04.2013, 15:14  [ТС] #3
anmartex, спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2013, 15:14
Привет! Вот еще темы с ответами:

Есть ли возможность в Matlab получить ответ в символьном виде? - Matlab
Здравствуйте. Подскажите пожалуйста, есть ли возможность в Matlab получить ответ в символьном виде. Чтобы при умножении матриц результат...

При добавлении WM_PAINT перестаёт отрабатывать ToolTips - C++ WinAPI
Друзья, не могу понять :-( Вот пишу для примера так void CreateHint(HWND hwnd, char* strTT) { HWND hwndTT; TOOLINFO...

Реализовать возможность сложения двух матриц (в виде отдельной функции) - C#
Помогите изменить программу добавив следующий функционал: -Возможность сложения 2-х матриц (реализовать в виде отдельной функции) ...

БД: возможность посмотреть историю изменений - в том числе в виде графика - Visual Basic
Смысл в том, что у записи есть определенный статус - на рассмотрении, исполнено и т.п. Я его сделала как отдельное поле в таблице. А...


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

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

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