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
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