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

Перегрузка стандартных операций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какие ограничения накладываются на объявления в операторах http://www.cyberforum.ru/cpp-beginners/thread982972.html
Вопрос: какие ограничения накладываются на объявления в операторах?
C++ факториал С++ Ребята, помогите пожалуйста с факториалом, а то я все не могу понять как сделать так что-бы k1 - факториал, от k до n #include <stdio.h> #include <conio.h> #include <math.h> void main() {... http://www.cyberforum.ru/cpp-beginners/thread982969.html
Строки. Логическая структура строк. Операции над элементами строк C++
Задание: StrSpn(s,s1) нахождение длины той части строки s, которая содержит только символы из строки s1. Выполнение работы: • Ввести с клавиатуры исходные данные (строку символов). • Вывести на...
C++ switch
switch(user_selection){ case 1: mainMenu.switchMenu(user_selection); break; case 2: mainMenu.switchMenu(user_selection); break; case 3: mainMenu.switchMenu(user_selection); break; case 4:...
C++ Программа вычисления функции http://www.cyberforum.ru/cpp-beginners/thread982955.html
Составить программу вычисления функции
C++ Решение задачи в microsoft visual studio Помогите решить задачу.блок-схему я составил.вроде правильная, а составить программу не могу.Почему то не получается.Помогите пожалуйста. Вот кстати сама задача Построить последовательность целых... подробнее

Показать сообщение отдельно
Only_Loko
10 / 10 / 0
Регистрация: 20.09.2013
Сообщений: 22

Перегрузка стандартных операций - C++

20.10.2013, 22:36. Просмотров 286. Ответов 1
Метки (Все метки)

Здравствуйте! В общем есть задание:
Составить описание класса для представления одномерных массивов вещественных чисел (векторов):
C++ (Qt)
1
2
3
4
5
6
7
8
9
class TVector{
private:
double *v;   // одномерный массив
int size;      // количество элементов
int index_l;   // нижний индекс
int index_h;   // верхний индекс
public:};
При создании объектов класса TVector предусмотреть возможность задания произвольных границ
индексов, определяемые полями index_l и index_h.

Я не пойму где мне использовать(и как) поля index_l и index_h. Здесь же меня просят перегрузить операцию []:
[ ] – операция индексирования, т.е. обращение к отдельному элементу
массива с контролем выхода за границы, определяемые index_l и index_h;
C++ (Qt)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include<iostream>
#include<cmath>
#include<Windows.h>
#include<process.h>
 
using namespace std;
 
class TVector{
private:
    T *v;
    int size;
    int index_l;
    int index_h;
public:
    TVector();  //конструктор по умолчанию
    TVector(int n);      //конструктор с параметрами
    TVector(const TVector &ob);    //конструктор копий
    ~TVector();
    TVector operator + (const TVector&); 
        TVector operator = (const TVector&); 
        TVector operator - (const TVector&); 
        T operator * (const TVector&);  
};
TVector::TVector() // реализация конструктора по умолчанию
{ 
      size = 0;
      v = new T[size]; 
} 
 
TVector::TVector(int n) // реализация конструктора с параметрами
{  
    size= n;
    v = new T[size];  
    for ( int i = 0; i <size; ++i) 
          v[i]= 0;
 
} 
 
TVector::TVector(const TVector &ob) // реализация конструктора копии
{   
    size = ob.size; 
    v = new T[size];   
    for ( int i = 0; i <size; ++i) 
         v[i]= ob.v[i];
 
}  
 
TVector::~TVector() // деструктор
{  
    delete[] v;
}
 
 
TVector TVector::operator=(const TVector& ob) // оператор присваивания
{ 
    if(this->size!=ob.size)
    {
        cout<<"Ошибка! Разный размер векторов!"<<endl;
        exit(1);
        
    }
    else{
    int i;                      
    for ( i = 0; i < this->size; ++i) 
            this->v[i] = ob.v[i]; 
    return *this;
    }
} 
int main()
{
int n1, n2;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите размер 1-го вектора\n";
    cin>>n1;
    cout<<"Введите размерность 2-го вектора\n";
    cin>>n2;
    TVector obj(n1), obj2(n2), obj3(n1);
    cout<<"Введите элементы 1-го вектора: \n";
    cin>>obj;
    cout<<"Введите элементы 2-го вектора: \n";
    cin>>obj2;
    obj3=obj+obj2;
    cout<<"Сумма векторов: "<<obj3<<endl;
    obj3=obj-obj2;
    cout<<"Разность векторов: "<<obj3<<endl;
    T pr=obj*obj2;
    cout<<"Скалярное произведение векторов: \n"<<pr<<endl;
    obj2++;
   ...\\и так далее
}
Буду благодарен, если приведете код для операции индексирования)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru