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

Способы создания объектов и арифметика указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перестановки из n чисел http://www.cyberforum.ru/cpp-beginners/thread164939.html
Не получается написать функцию, которая сохраняет всевозможные перестановки из n элементов в двухмерный массив int arr, где len-число всевозможных перестановок. Как это можно реализовать?
C++ Объединение данных файлов-комментариев .srt Если кому не сложно, то напишите программку, которая объединяет данные у файлов-комментариев .srt. А конкретно объединяет перевод фразы одного и другого языка. Например film_ru.srt и film_en.srt имеет такое содержание 1 00:00:04,070 --> 00:00:05,904 "Привет и пока" и http://www.cyberforum.ru/cpp-beginners/thread164925.html
C++ Двунаправленный линейный список
Доброго времени суток! Я перевелся на 2ой курс в институте, где изучали С++, которого у меня не было. Поэтому спрашиваю вас - что такое двулинейный направленный список, как он реализуется (что нужно изучить, чтобы это сделать) и как с ним работать (добавлять, удалять, искать и т.д.)? Вообще задайте направление мыслей, а то непонятно что и как делать.
Определить N – количество x(i) с чётными номерами, меньшими x(1) и x(max)/2. C++
не могу никак решить задачку: Даны x1, x2, …, x8. Определить N – количество x(i) с чётными номерами, меньшими x(1) и x(max)/2. Надо чтобы ответы на экран выводились, и файлы должны записываться в статический массив. Так же надо сделать форматированный вывод и колличество элементов должно задаваться. Выручайте!
C++ Умножение матрицы на число http://www.cyberforum.ru/cpp-beginners/thread164904.html
ну вобщем былбы примного благодарен еслиб помогли с такой вот задачкой: 2 3.1 7.5 11 1.7 1 0 7.4 5 дано: А= 4.5 10.7 , В= 5 4 2 , С= 7 8 , В= 9 8 7 1 5 6 K=B(A+C)+D Поможите люди добрые?=)
C++ как запустить visual c++ на win 7 Подскажите чайнику как запустить встроенный в win 7 visual c++, установленные компоненты есть Microsoft Visual C++2010 64 Redistributable а как запустить? подробнее

Показать сообщение отдельно
Ivan_32
28 / 24 / 4
Регистрация: 03.02.2010
Сообщений: 66

Способы создания объектов и арифметика указателей - C++

11.09.2010, 09:49. Просмотров 1830. Ответов 13
Метки (Все метки)

Вот сам код:
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
class ListNode
{
public:
    ListNode(int val)
    {
        next=NULL;
        i=val;
    }
    ListNode* next;
    ListNode* prev;
    int i;
};
 
class List
{
public:
    ListNode* first;
    List(int i)
    {
        first=new ListNode(i);
    };
    void Add(int i)
    {
        ListNode* last=this->first;
        while(last->next)
        {
            last=last->next;
        }
        last->next=new ListNode(i);
    };
    int& operator[](int index)
    {
        ListNode* temp=this->first;
        for(int i=0;i<index;i++)
        {
            temp=temp->next;
        }
        return temp->i;
    };
};
int main()
{
    List* a=new List(1);
    List& t=(*a);
    a->Add(99);
    a->Add(88);
    printf("%i",t[2] /*(*a)[2]*/ );
    getch();
    return 0;
}
Проблема следующая:
Я страх как не хочу видеть в коде ссылочные типы на объект и уж тем более очень не хочется видеть выражения вида (*a)[0]. Опять же не очень хочется делать некий абстрактный класс для сокрытия арифметики указателей( да и можно ли такое сделать в данном случае? ), да и не знаю как.
Как можно данную проблему решить и что не так у меня в классах, может быть я где то допустил ошибку?

Так же интересует чем различаются данные способы создания объектов:
List* a=new List(0);
List b(0);
Я так понимаю первый живет ровно до тех пор пока на него ссылается хотя бы один указатель, а вот второй это просто напросто ссылка на объект? Первый не умрет если на него будет что либо ссылается, а вот второй умрет сразу после выхода из области видимости?

PS: Меня так же посещала мысль сделать из этого класса функтор, это конечно решит проблему но выглядит как то уж криво слишком, с таким же успехом можно будет и обычную функцию использовать. Хочется настоящей неподдельной инкапсуляции, так что б тип данным выглядел взаправдашним
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru