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

Определить класс ограниченного массива - C++

Войти
Регистрация
Восстановить пароль
 
Isya Shmonder
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 21
28.03.2012, 13:52     Определить класс ограниченного массива #1
Такое задание по ООП.
Определить класс ограниченного массива вещественных чисел, индексы элементов которого могут принимать отрицательные значения. Пример объявления массива и обращения к его элементам.
Mdouble x (-30, 50);
x[-30] = 1.2; x [0] =0. ; x [50] = -1
Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2012, 13:52     Определить класс ограниченного массива
Посмотрите здесь:

C++ определить головной класс
Определить пользовательский класс. C++
Наследование: Определить класс vector2 как вектор на плоскости. Определить для него операции и функции C++
C++ Функции обработки массива (определить произведение элементов массива, заменить модулем все элементы массива, уничтожить элемент с заданным значением)
C++ Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
Определить, лежит ли точка внутри или вне круга, ограниченного указанной окружностью, или на окружности C++
Определить лежит ли точка внутри или вне круга,ограниченного указанной окружностью, или на окружности C++
Определить класс список C++
C++ Создайте класс динамического массива, в котором реализована проверка выхода за границы массива
C++ Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн
C++ Определить шаблоный класс
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и п C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
28.03.2012, 15:26     Определить класс ограниченного массива #2
Цитата Сообщение от Isya Shmonder Посмотреть сообщение
Такое задание по ООП.
Определить класс ограниченного массива вещественных чисел, индексы элементов которого могут принимать отрицательные значения. Пример объявления массива и обращения к его элементам.
Mdouble x (-30, 50);
x[-30] = 1.2; x [0] =0. ; x [50] = -1
Заранее благодарен.
А если первый параметр в конструкторе задать положительным, отсчёт индексов должен будет вестись от нуля, или от этого параметра?
C++
1
2
Mdouble x (30,50);//Разрешено ли так?
x[0]=1.2;//А так разрешено, если задано id начала массива=30

Короче, вот ответ:
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
#include <iostream> 
#include <fstream>
using namespace std;
class signed_array{
protected:
    int start, end;
    float* data;
public:
    signed_array(int s=0, int e=0){
        if (s<=e) {
            start=s;
            end=e;
            data=new float[e-s];
        }
        else {
            start=end=0;
            cerr<<"array["<<s<<"]["<<e<<"] is invalid"<<endl;
            data=new float[0];
        }
        if (!data) cerr<<"out of memory"<<endl;
    }
    int get_start(){return start;}
    int get_end(){return end;}
    signed_array(signed_array& src){
        int i;
        start=src.start;
        end=src.end;
        data=new float[end-start];
        if (!data) {cerr<<"out of memory"<<endl;}
        for (i=0; i<end-start; i++) data[i]=src.data[i];
    }
    signed_array& operator = (signed_array& src){
        if (data) delete[] data;
        int i;
        start=src.start;
        end=src.end;
        data=new float[end-start];
        if (!data) cerr<<"out of memory"<<endl;
        for (i=0; i<end-start; i++) data[i]=src.data[i];
    }
    ~signed_array(){
        if (data) delete[] data;
    }
    float& operator [] ( int index ) const{
        if ((index>=start)&&(index<=end)) return (data[index-start]);
        return (data[0]);
    };
 
};
int main(){
    char c;
    signed_array test(-5, 5);
    test[-4]=2.0;
    test[-2]=0.5;
    test[-3]=test[-4]+test[-2];
    cout<<"test[-4]="<<test[-2]<<endl;
    cout<<"test[-3]="<<test[-4]<<endl;
    cout<<"test[-2]="<<test[-3]<<endl;
    cin>>c;
    return 0;
}
Yandex
Объявления
28.03.2012, 15:26     Определить класс ограниченного массива
Ответ Создать тему
Опции темы

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