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

Метод класса возвращающий итератор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему неверно писать #include <iostream.h>? http://www.cyberforum.ru/cpp-beginners/thread359405.html
Добрый вечер. Очередной вопрос от чайника))) Вопрос такой. Почему надо писать #include <iostream>, а не #include <iostream.h>? Для такого кода: #include <iostream.h> #include <conio.h> using namespace std; int main() { cout << "Hello World" << endl;
C++ Вычислить и вывести на экран в виде таблицы значение функции #include <stdio.h> #include <math.h> int main () {float x,b,a,c,F; printf ("vvedite x\n"); scanf ("%f",&x); printf ("vvedite a\n"); scanf ("%f",&a); printf ("vvedite b\n"); scanf ("%f",&b); http://www.cyberforum.ru/cpp-beginners/thread359399.html
C++ Найти минимальный положительный элемент кратный 3м под побочной диагональю
Дана матрица 12х12,найти минимальный положительный элемент кратный 3м,под побочной диагональю.Можно изменить размер,т.к. нужно заполнить массив в ручную.
Не работает программа из книги Герберта Шилдта. C++
При вводе кода из вышеупомянутой книги, выдает 3 ошибки: 1) error C2440: '=' : cannot convert from 'char ' to 'char' 2)error C2446: '<=' : no conversion from 'char *' to 'int' 3)error C2040: '<=' : 'int' differs in levels of indirection from 'char ' Вот код программы который я ввел: #include <iostream> using namespace std; int main()
C++ Ввести тип работ и вывести начисленную сумму, сумму налога и сумму к выдаче http://www.cyberforum.ru/cpp-beginners/thread359361.html
Пусть оплата работ зависит от типа выполненной работы или вида предпринимательской деятельности (P1, P2, P3) и начисляется по формуле Z = 50 (F (i) +100), для работ типа P1 Z = 100 (F (i) +120), для работ типа P2 Z = 155 (F (i) +100), для работ типа P3 где F (i) - функция h-2k (c-h); где h = 2 k = 53 c = 74; Для работ типа Р1 налог составляет 10%, для Р2 -15%, для Р3 - 20%.
C++ Небольшое исправление Собственно нужно при нажатии кнопки " ' " нужно вывести на экран содержимое первого окна в новом окне с кнопкой ОК. Сама кнопка работает, только не выводит текста, выводит ошибку преобразования string в char. #include <windows.h> #include <string> using namespace std; LRESULT CALLBACK WindowProcedure (HWND,UINT,WPARAM,LPARAM); char szClassName ="Мой класс оконный"; int WINAPI WinMain... подробнее

Показать сообщение отдельно
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
02.10.2011, 17:37  [ТС]     Метод класса возвращающий итератор
Хотя нет, это я же написал что возвращаю указатель, а нужно просто возвращать StudentsIterator по версии alex_x_x, вот только вернуть получается просто StudentsIterator только если код class StudentsIterator находится внутри класса Students, иначе ругается, а код то у меня на самом деле большой ... как же его тогда подключить. Если перекидываю код класса-итератора в cpp файл, который компилирую совместно то компилятор ругается что не знает что такое ListItem , как сделать предварительное объявление тогда этой структуре ? (структура ListItem находится в классе Students).
LosAngeles, вообще чисто Ваш вариант тоже не работает (неявно не вызывается, опять же таки ругается почему-то, хотя должен и неявно вызываться как я изначально и планировал), но я не могу запихнуть код класса-итератора внутрь так как он большой, я ведь сюда запостил только то что касается проблемы чтобы не отпугивать и не запутывать Вас.

Добавлено через 8 минут
В общем у меня замкнутый круг: чтобы определить класс-итератор нужно чтобы был объявлен класс Студентов, а чтобы объявить методы begin/end класса Студенты нужно чтобы уже был объявлен итератор, как апофеоз всего этого:
сделав объявление в классе:
C++
1
2
    StudentsIterator begin();
    StudentsIterator end();
и потом сразу после определения класса-итератора внизу дописываю
C++
1
2
StudentsIterator Students:: begin(){return Head;}
StudentsIterator Students:: end(){return StudentsIterator(0);}
и получаю
Код
obj\Debug\main.o(.text+0x100)||In function `ZN8Students5beginEv':|
C:\c++\Projects\StudentsProject\Students.h|161|multiple definition of `Students::begin()'|
obj\Debug\students.o(.text+0x100):C:\c++\Projects\StudentsProject\Students.h|161|first defined here|
obj\Debug\main.o(.text+0x120)||In function `ZN8Students3endEv':|
C:\c++\Projects\StudentsProject\Students.h|162|multiple definition of `Students::end()'|
obj\Debug\students.o(.text+0x120):C:\c++\Projects\StudentsProject\Students.h|162|first defined here|
||=== Build finished: 4 errors, 0 warnings ===|
Те компилятор пишет что я определяя функцию переопределяю её (и первое и второе определение функции он пишет что это одна строка) О_о Всё, поздравьте меня, я запутался в ошибках компилятора окончательно.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru