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

Перегрузка скобок для указателя - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию http://www.cyberforum.ru/cpp-beginners/thread1156240.html
в массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию. Использовать сортировку пузырьком. #include<stdio.h> #include <conio.h> #include <stdlib.h> #include<time.h> struct student { char Name; int Old; int ycp;
C++ Сведение к двум дифференциальным уравнениям, Рунге-Кутта-Мерсона Здравствуйте. В общем имеется функция y = x(t) y''=g(sin\alpha - \eta cos\alpha) Ее нужно свести к двум дифференциальным уравнениям первого порядка и применить метод Рунге-Кутта-Мерсона. t0 <= t <= t1, h = 0.1 Так же дано x0, y(x0). В интернете нашел мало информации об этом методе, а на википедии не смог разобраться. Буду рад помощи, спасибо. http://www.cyberforum.ru/cpp-beginners/thread1156239.html
C++ Перевод из русской раскладки клавиатуры в латинскую
Зравствуйте! Столкнулся с такой проблемой: необходимо реализовать класс для считывания текста из файла, сохранения его в памяти и перевода из русской раскладки клавиатуры в латинскую (замена букв й->q, ц->w, у->e, к->r и т.д.) сохраненного текста. И на оборот, но наоборот сейчас не так важно. Подскажите пожалуйста, если можно блоком кода, как это реализовать? Я предполагаю, что нужно создать 2...
Создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке C++
Друзья, подскажите, пожалуйста, в чем может быть ошибка? Задача такова: создать линейный односвязный список, упорядоченный по фамилиям продавцов в алфавитном порядке Вот код: struct prodavec { char FIO; int ipr; //nomer pr-ca int kol_ves; int kol_shtuk; float time; //obchee vremya na obsluz.odnim pr-om vseh pokupatele
C++ Организовать двунаправленный список для хранения элементов структуры, содержащей сведения о фамилии, дате рождения http://www.cyberforum.ru/cpp-beginners/thread1156206.html
Организовать двунаправленный список для хранения элементов структуры, содержащей сведения о фамилии, дате рождения. Предусмотреть добавление элементов в конец списка, поиск по дате рождения, удаление по фамилии. Предусмотреть удаление списка перед выходом из программы. Вот все что смог сделать. Надеюсь на вашу помощь #include <iostream> #include <conio.h> #include <stdio.h> #include...
C++ Как сделать ИЛИ в ИФЕ Привет форумчане. Прошу помочь с ИФ. Как сделать ИЛИ подробнее

Показать сообщение отдельно
madonzy
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 65
24.04.2014, 15:34     Перегрузка скобок для указателя
Здраствуйте. Написал небольшой код, всё работает, но не знаю как при динамическом вызове можно было просто использовать a[1], a[2]... вместо (*a)[1], (*a)[2] ....
Вот сам код:

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <cstdlib>
 
using std::cin;
using std::cout;
using std::endl;
 
class Vector {
 
    private:
        const size_t size;
        float *p;
 
    public:
        Vector(const size_t n) : size(n), p(new float [size]) {}
        ~Vector() { if(p) delete []p; };
        friend std::istream & operator >> (std::istream &, Vector *&);
        friend std::ostream & operator << (std::ostream &, const Vector *);
 
        friend std::istream & operator >> (std::istream &, Vector &);
        friend std::ostream & operator << (std::ostream &, const Vector &);
        float & operator [] (const size_t i) const { return p[i]; }
};
 
// Dynamic allocation
std::istream & operator >> (std::istream &lh, Vector *&rh) {
    for (int i = 0; i < rh->size; ++i)
        cout << "Enter value of box #" << i+1 << " ", lh >> rh->p[i];
    return lh;
}
 
std::ostream & operator << (std::ostream &lh, const Vector *rh) {
    for (int i = 0; i < rh->size; ++i)
        cout << "Value of box #" << i+1 << " is " << rh->p[i] << endl;
    return lh;
}
 
 
// Static allocation
std::istream & operator >> (std::istream &lh, Vector &rh) {
    for (int i = 0; i < rh.size; ++i)
        cout << "Enter value of box #" << i+1 << " ", lh >> rh.p[i];
    return lh;
}
 
std::ostream & operator << (std::ostream &lh, const Vector &rh) {
    for (int i = 0; i < rh.size; ++i)
        cout << "Value of box #" << i+1 << " is " << rh.p[i] << endl;
    return lh;
}
 
int main() {
 
    // Start dynamic
    Vector *a = new Vector(3);
 
    cout << "Dynamic:" << endl;
    cin >> a;
    cout << a;
 
    cout << "Enter new value for (*a)[0]: ";
    cin >> (*a)[0];
    cout << "New value of (*a)[0] = " << (*a)[0] << endl;
 
    delete a;
    // End dynamic
 
    // --------------------------------------
 
    // Start static
    Vector b(3);
 
    cout << endl << "Static:" << endl;
    cin >> b;
    cout << b;
 
    cout << "Enter new value for b[0]: ";
    cin >> b[0];
    cout << "New value of b[0] = " << b[0] << endl;
    // End static
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru