Форум программистов, компьютерный форум 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() { double a, b, x, h, s,y,p,k1; int n, k; puts("Input a,b,h,n"); 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: mainMenu.switchMenu(user_selection); break; case 5: mainMenu.switchMenu(user_selection); break; case 6: exit(0); break; default : ... }
C++ Программа вычисления функции http://www.cyberforum.ru/cpp-beginners/thread982955.html
Составить программу вычисления функции
C++ Решение задачи в microsoft visual studio Помогите решить задачу.блок-схему я составил.вроде правильная, а составить программу не могу.Почему то не получается.Помогите пожалуйста. Вот кстати сама задача Построить последовательность целых чисел a1, ..., a30, где a1=1, a2=1, a=a+ a (i=3, ..., 30). подробнее

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

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

20.10.2013, 22:36. Просмотров 273. Ответов 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++;
   ...\\и так далее
}
Буду благодарен, если приведете код для операции индексирования)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru