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

Класс "Студент" - Как записать ссылку на функцию структуры? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять местами 2 половины строки // С++ http://www.cyberforum.ru/cpp-beginners/thread358805.html
Всем привет. Visual C++. Задание: На входе строка. Необходимо разделить её на 2 равные части, и поменять их местами. Например "abcdefghijklmnopq" ->"jklmnopqabcdefghi" Вот, что я написал:...
C++ Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. 1.Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. 2.Даны три вещественных положительных числа a, b, c. Определите, пройдет ли мяч радиуса а через... http://www.cyberforum.ru/cpp-beginners/thread358801.html
C++ Вычислить значение функции арккосинуса, заданной с помощью ряда Тейлора
Вычислить и вывести на экран в виде таблицы значение функции, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dX с точностью E. Таблицу снабдить заголовком и шапкой. Каждая...
Не могу довести до ума..а хотя все эллиментарно...( C++
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач до Хкон с шагом dX. Формула -ax-c при с>0 u !=0 F= x-a/-c при с>0 и х=0 bx/c-a в остальных...
C++ В чем ошибка, не считает...ответ выдает по нулям(((( http://www.cyberforum.ru/cpp-beginners/thread358781.html
#include <stdio.h> #include <windows.h> #include <math.h> char buf ; char*RUS(const char*text) { CharToOem(text,buf); return buf; }
C++ Очереди Привет всем!!!)) Вот у меня такая задачка: необходимо реализовать очередь, содержащую запись состоящую из двух полей: имени и фамилии. Напечатать в порядке поступления фамилии всех людей с... подробнее

Показать сообщение отдельно
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
01.10.2011, 01:49  [ТС]
alex_x_x, ну мне итераторы нужны на самом деле для печати списка, это основная причина по которой я захотел некое их подобие добавить себе в класс.

Добавлено через 14 минут
При создании класса-итератора возникла проблема, допустим вот мой класс-итератор (всё внимание на ссылку на string first:
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
class StudentsIterator
{
    private:
    Students::ListItem* ListPtr;
    public:
 
    string& first;
 
 
    StudentsIterator():ListPtr(NULL),first(ListPtr->fullname){}
 
    StudentsIterator(const Students &right): first(ListPtr->fullname)
    {
        *this=right;
    }
 
    StudentsIterator(Students::ListItem* right) :first(ListPtr->fullname)
    {
        *this=right;
    }
 
 
    StudentsIterator* operator=(const Students &right)
    {
        ListPtr=right.Current;
        return this;
    }
 
    //для указателей на элемент, например на начало или конец списка
    StudentsIterator* operator=(Students::ListItem* right)
    {
        ListPtr=right;
        return this;
    }
 
    Students::ListItem* where(){return ListPtr;}
};
Как видно она инициализируется адресом на поле ListPtr->fullname, но есть проблема: а что если ListPtr у меня NULL то будет же runtime error, а это не есть хорошо ... как же учесть этот момент?

Добавлено через 1 минуту
Хотя наверное мне стоит просто сделать функции в итераторе типа first() с нормальной проверкой .
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru