Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Prog2
/
labor_peldak
/
lab_09
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
Commit
2cd4fd28
authored
Apr 24, 2019
by
Szeberényi Imre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
const_iterator
parent
e1aecbfc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
0 deletions
+39
-0
genArray3/gen_array_iter3.hpp
+39
-0
No files found.
genArray3/gen_array_iter3.hpp
View file @
2cd4fd28
...
...
@@ -3,6 +3,8 @@
*
* Generikus tömb iterátorral v3.
* Előadáson bemutatott kód módosított változata.
* Interfész jobban hasonlít az std::vector-ra.
* Van konstans iterarora is.
*/
#ifndef GEN_ARRAY_ITER3
#define GEN_ARRAY_ITER3
...
...
@@ -21,6 +23,7 @@ class Array {
public:
/// minden implicit tagfüggvény jó, nem kell átdefiniálni
class
iterator
;
// elődeklaráció
class
const_iterator
;
// konstans objektumra hivatkozó iterator elődeklarációja
/// default és konstans értékkel feltöltő konstruktor
/// @param n - méret
...
...
@@ -51,6 +54,18 @@ public:
return
iterator
(
*
this
,
siz
);
// ld. iterátor konstruktor
}
/// létrehoz egy konstans objektumra alkalmazható iterátort és az elejére állítja
/// @return - iterátor az adatsorozat elejére
const_iterator
begin
()
const
{
return
const_iterator
(
*
this
);
// ld. iterátor konstruktor
}
/// létrehoz egy iterátort és az utolsó elem után állítja
/// @return - iterátor az adatsorozat végére
const_iterator
end
()
const
{
return
const_iterator
(
*
this
,
siz
);
// ld. iterátor konstruktor
}
/// Elemek tényleges száma
/// @return - ténylegesen tárolt elemek száma
size_t
size
()
const
{
return
siz
;
}
...
...
@@ -134,6 +149,30 @@ public:
};
// iterator osztály vége
/// const_iterator osztály
/// Visszavezetjük az iterator osztályra.
class
const_iterator
:
public
iterator
{
public
:
/// default konstruktor
const_iterator
()
{}
/// konstruktor, egy konkrét objektum ix-edik elemére mutat
/// @param a - a konkrét objektum
/// @param ix - ide állítja az indexet
const_iterator
(
const
Array
&
a
,
size_t
ix
=
0
)
:
iterator
(
const_cast
<
Array
&>
(
a
),
ix
)
{}
/// Kis trükközés a kasztolással...
const
T
&
operator
*
()
const
{
return
iterator
::
operator
*
();
}
/// Szelekció pointerrel (nyil). Címet kell, hogy adjon.
const
T
*
operator
->
()
const
{
return
&
operator
*
();
}
};
/// Virtuális destruktor.
/// Most nem használjuk, de egy generikus osztály későbbi
/// felhasználási módja kevésbé látszik.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment