Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2015, 23:05   #1
DmitryEfimow
Новичок
Джуниор
 
Регистрация: 05.11.2015
Сообщений: 1
По умолчанию Шаблоны с++ ругается компилятор

задание вот такое:Общая постановка. Дано: число N и последовательность a1, a2, … aN
Создать шаблон класса, порождающий динамические одномерные массивы с элементами различных типов (вещественные, целочисленные, символьные и т.д.). Тип данных и результат являются параметрами по отношению к классу, программа должна иметь методы инициализации, конструктор, деструктор, метод просмотра значений созданного массива, согласно заданному алгоритму.

-a1, +a2, -a3, … , (-1)N*aN;

вот что я составил :
Код:
#include <iostream>
 
#include <conio.h>
using namespace std;
const int MAX = 3;
 
template <class Temp>
 
class List
 
    {
 
private:
    int N;
 
    Temp* A;
 
public:
    List();
 
    void Set();
 
    void Get();
 
    void Run();
 
    ~List();
};
 
//////////////////////////////////////////
 
template <class Temp>
 
List<Temp>::List()
 
{
 
    A = new Temp[MAX];
 
    //cout << "Constructor" << endl;
}
 
//---------------------------------------
 
template <class Temp>
 
List<Temp>::~List()
 
{
 
    delete[] A;
 
    //cout << "Destructor" << endl;
}
 
//---------------------------------------
 
template <class Temp>
 
void List<Temp>::Set()
 
{
 
    cout << "Vvedite N: ";
 
    cin >> N;
 
    A = new Temp[N];
 
    for (int i = 0; i < N; i++)
 
    {
 
        cout << "Vvedite znacheniya massiva: ";
 
        cin >> A[i];
    }
}
 
//---------------------------------------
 
template <class Temp>
 
void List<Temp>::Get()
 
{
 
    cout << "Prosmotr tekushchego sostoyania: " << endl;
 
    for (int i = 0; i < N; i++)
 
    {
 
        cout << A[i] << " ";
        ;
    }
 
    cout << endl;
}
 
//---------------------------------------
 
template <class Temp>
 
void List<Temp>::Run()
 
{
 
    for (int i = 0; i < N; i++)
 
    {
 
        A[i] *= pow(-1, i);
    }
}
 
//////////////////////////////////////////
 
void main()
 
{
 
    List<int> s1;
 
    cout << "Znacheniya tipa INT: " << endl;
 
    s1.Set();
 
    s1.Get();
 
    s1.Run();
 
    s1.Get();
 
    List<char> s2;
 
    cout << endl;
 
    List<double> s3;
 
    cout << endl;
 
    cout << "Znacheniya tipa DOUBLE: " << endl;
 
    s3.Set();
 
    s3.Get();
 
    s3.Run();
 
    s3.Get();
}
компилятор ругается :Ошибка 1 error C2668: pow: неоднозначный вызов перегруженной функции

Последний раз редактировалось Stilet; 06.11.2015 в 10:02.
DmitryEfimow вне форума Ответить с цитированием
Старый 05.11.2015, 23:54   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну вам же русским написали... Ваши параметры для пов (http://en.cppreference.com/w/cpp/numeric/math/pow) попадают в несколько ее перегрузок - определитесь, что вам надо.
p51x на форуме Ответить с цитированием
Старый 06.11.2015, 10:02   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
A[i] *= pow(-1, (double)i);
Ага?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компилятор ругается novak3 Общие вопросы C/C++ 4 21.05.2011 01:58
Ругается компилятор.. CormiX Помощь студентам 0 14.05.2011 16:13
компилятор ругается на AnsiString CodeNOT Общие вопросы C/C++ 6 04.01.2011 01:50
Компилятор ругается на ;(точку с запятой) Android_ua Общие вопросы C/C++ 2 19.05.2010 19:06
Ругается компилятор JSM Общие вопросы Delphi 2 17.06.2007 23:04