Commit ea5f48d9 by Szeberényi Imre

v0

parents
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="CppBolt" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/CppBolt" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
<Add option="-DMEMTRACE" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/CppBolt" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-pedantic" />
<Add option="-Wall" />
<Add option="-Werror" />
</Compiler>
<Unit filename="aru.h" />
<Unit filename="boltMain.cpp" />
<Unit filename="datum.cpp" />
<Unit filename="datum.h" />
<Unit filename="gtest_lite.h" />
<Unit filename="kassza.cpp" />
<Unit filename="kassza.h" />
<Unit filename="memtrace.cpp" />
<Unit filename="memtrace.h" />
<Unit filename="tej.h" />
<Extensions>
<code_completion />
<envvars />
<debugger />
<lib_finder disable_auto="1" />
<DoxyBlocks>
<comment_style block="0" line="0" />
<doxyfile_project />
<doxyfile_build />
<doxyfile_warnings />
<doxyfile_output />
<doxyfile_dot />
<general />
</DoxyBlocks>
</Extensions>
</Project>
</CodeBlocks_project_file>
#
#
# Makefile a CppBolt eloallitasahoz
# kihazsnalja, hogy gmake
#
PROG = boltMain
SRCS = boltMain.cpp datum.cpp kassza.cpp memtrace.cpp
HDRS = aru.h datum.h gtest_lite.h kassza.h memtrace.h tej.h
OBJS = $(SRCS:.cpp=.o)
CXXFLAGS = -ggdb -pedantic -Wall -Werror -DMEMTRACE
$(PROG): $(OBJS)
$(CXX) -o $(PROG) $(OBJS)
.PHONY:
clean:
rm -f $(OBJS) $(PROG)
# Egyszerusites: Minden .o fugg minden header-tol, es meg a Makefile-tol is
$(OBJS): $(HDRS) Makefile
Egy bolt **pénztárgépét** szeretnénk modellezni. A pénztáros megadja az eladott mennyiséget és az **árut**.
A gép nyilvántartást vezet az **eladásokról**. Nyilván kell tartani az eladás *dátumát*, eladott áru *mennyiségét*,
*értékét*, *egységárát*, és *minden jellemzőjét*. A nyilvántartásból lekérdezhető az összes eladás adata,
ami szűrhető egy adott napra is. Lekérdezhető továbbá egy adott nap árbevétele. OO tervezési mintát
követve meghatároztuk a
**szereplőket:**
- **Kassza** - a pénztárgép (tároló jellegű valami)
- **Tetel** - eladáskor keletkező pénztári bejegyzés (ez tárolja az eladás adatait)
- **Aru** - bolt által forgalmazott áruk
Miután számtalan áru (Aru) lehet, melynek a jellemzői előre nem ismertek, olyan megoldást
kell választani, ami könnyen bővíthető tetszőleges áruval. Heterogén kollekció alkalmazása mellett
döntöttünk. Ennek tipikus mintája, hogy a tárolóban valamilyen alaposztályra mutató pointert tárolunk
(ld. előadás eseménynapló). Ez viszont azt jelentené, hogy ebben az alaposztályban kellene tárolni
az eladás adatait, és ebből kellene származtatni az árukat. Az áruknak azonban semmi köze az eladási
adatokhoz, ezért zavaró lenne ebből származtatni azokat. A probléma feloldásához bevezettünk egy
közbenső osztályt (Tetel), amit a pénztárgépben (Kassza) tárolunk, és ez hivatkozik az áruk alaposztályára.
Elkészítettük a vázolt megoldás objektummodelljét:
![Osztálydiagram](https://git.ik.bme.hu/Prog2/ell_feladat/CppBolt/raw/master/cppbolt.png)
Ezt követően elkészítettük a modell C++ megvalósítását és egy egyszerű tesztprogramot (boltMain)
A DoxyGen program segítségével pedig legeneráltuk a megoldás
[dokumentációját is.](http://svn.iit.bme.hu/proga2/cporta_peldak/CppBolt/doxygen/html/index.html)
Nem minden osztályt és funkciót valósítottunk meg hiánytalanul. Ennek pótlása az Ön feladata.
**Feladatok:**
1. Töltse le az előkészített projektet a Git tárolóból! [https://git.ik.bme.hu/Prog2/ell_feladat/CppBolt](https://git.ik.bme.hu/Prog2/ell_feladat/CppBolt)
2. Adja hozzá a projekthez az 5. hét laborgyakorlatán kötelező feladatként elkészített *String* osztályt (*string5.h*, *string5.cpp*)!
3. Fordítsa le és futtassa a programot! Hibás működést fog tapasztalni, mert nincs minden funkció pontosan megvalósítva.
4. Módosítsa a **kassza.cpp** fájlt, hogy az *elad()* tagfüggvény dobjon kivételt, amikor a tároló megtelik.
5. Egészítse ki a *list(std::ostream&, const Datum&)*, valamint a *napiOsszeg(const Datum&)* függvényeket, hogy azok az elvárásoknak megfelelően működjenek!
6. Futtassa, tesztelje a programot.
7. Készítse el **Kifli** osztályt a *kifli.h* fájlban!
8. Definiálja projekt szinten a KIFLI\_IS\_VAN makrót, fordítson és futtasson.
9. Amennyiben a tesztek nem mutatnak hibát, töltse fel a *JPorta* feladatbeadó rendszerbe a **kifli.h** és a **kassza.cpp** fájlokat!
**Megjegzések:**
1. A feladat leírása hosszú, de a megoldás meglehetősen egyszerű.
2. A fenti osztálydiagramon helytakarékosság végett a *const* minősítőket nem jelöltük.
3. A DoxyGen programmal generált UML ábrák nem mindenben felelnek meg az UML jelölési rendszerének, illetve helyenként hiányosak.
\ No newline at end of file
#ifndef ARU_H
#define ARU_H
/**
* \file aru.h
*
* Aru osztály deklarációja és globális függvényei
*/
#include <iostream>
#include "string5.h"
/// Aru osztály.
///
class Aru {
protected:
String megnevezes; ///< áru megnevezése
String egyseg; ///< áru mennyiségi egysége (db, liter, kg, ...)
double ar; ///< áru egységára
public:
/// Konstruktor beállítja az attribútumokat
/// @param nev - áru megnevezése
/// @param egység - áru mennyiségi egysége szövegesen (db, liter, kg, ...)
/// @param ar - áru egységára
Aru(const char *nev, const char *egyseg, double ar)
:megnevezes(nev), egyseg(egyseg), ar(ar) {}
/// Megnevezés lekérdezése
/// @return - megnevezés
String getNev() const { return megnevezes; }
/// Mennyiségi egység lekérdezése
/// @return - mennyiségi egység
String getEgys() const { return egyseg; }
/// Egységár lekérdezése
/// @return - egységár
double getAr() const { return ar; }
/// Attribútumok kiírása egy stream-re
/// @param os - output stream referencia
/// @return output stream referencia
virtual std::ostream& print(std::ostream& os) const {
return os << megnevezes << ": " << ar << "/" << egyseg;
}
/// Virtuális destruktor
virtual ~Aru() {}
};
/// Globális inserter
/// @param os - output stream referencia
/// @param s - Aru referencia
/// @return output stream referencia
inline std::ostream& operator<<(std::ostream& os, const Aru& a) {
return a.print(os);
}
#endif // ARU_H
/**
* \file boltMain.cpp
* Tesztprogram a Kassza, Aru, Tej, Kifli osztályok teszteléséhez.
*
* \par Demonstrációs cél:
* 1. Heterogén kollekció demonstrálása.
* A Kassza osztályban tárolt tétel Aru POINTER-t tárol. Így minden
* áruból származó új áru tárolására alkalmas.
*
* 2. Az öröklés adta egyik lehetőség a bővíthetőség demonstrálása
*
*** FONTOS ***
* A MEMTRACE makrónak minden fordítási egységben definiált kell, hogy legyen!
* Ezt legkényelmesebben projekt szintű beállítással tudja elérni.
* (Projekt->Build options->#defines)
*
*/
#include <iostream>
#include <sstream>
#include "memtrace.h"
#include "gtest_lite.h"
#include "kassza.h"
#include "tej.h"
#ifdef KIFLI_IS_VAN
# include "kifli.h"
#endif
using std::cout;
using std::endl;
using std::cin;
int main() {
#ifdef KILI_IS_VAN
/// Az első két teszteset a Kifli objektum kiírási formátumát teszteli.
TEST(kifli, print1) {
Kifli tejeskifli(29, "tejes");
std::stringstream ss;
tejeskifli.print(ss); // stringstream az output, amit
EXPECT_STREQ("Kifli tejes; 29Ft/db", ss.str().c_str()); // C sztringgé konvertálunk és összehasonlítjuk
} ENDM
TEST(kifli, print2) {
Kifli sajtoskifli(72, "sajtos");
std::stringstream ss;
ss << sajtoskifli; // inserternek is mennie kell
EXPECT_STREQ("Kifli sajtos; 72Ft/db", ss.str().c_str());
} ENDM
#endif
/// Most felveszünk néhány árufajtát a boltba
const Tej tej15(1.5, 230);
const Tej tej15lm(1.5, 310, "laktozmentes");
const Tej tej28(2.8, 270);
#ifdef KIFLI_IS_VAN
const Kifli sajtoskifli(70, "sajtos");
const Kifli tejeskifli(29, "tejes");
#endif
#if 0
/// Kivétel dobásának ellenőrzése: Tudjuk, hogy a kasszába 20 tétel fér
TEST(Kassza, kivetel) {
Kassza p2;
for (int i = 0; i < 20; i++)
EXPECT_NO_THROW(p2.elad(3, tej28));
EXPECT_ANY_THROW(p2.elad(3, tej28));
} ENDM
#endif
/// Eladunk ezekből a p1 kasszánál
/// Az első két eladási mennyiséget a standard bemenetről olvassuk be
Kassza p1;
int ennyi_tejet;
cout << "Mennyi tej kell? ";
cin >> ennyi_tejet;
p1.elad(ennyi_tejet, tej15);
#ifdef KIFLI_IS_VAN
int ennyi_kiflit;
cout << "Mennyi kifli kell? ";
cin >> ennyi_kiflit;
p1.elad(ennyi_kiflit, sajtoskifli);
#endif
/// Itt pedig csalunk: előredátumozzuk az eladásokat
p1.elad(2, tej15, Datum(3000, 4, 1));
p1.elad(2, tej15lm, Datum(3000, 4, 1));
#ifdef KIFLI_IS_VAN
p1.elad(10, sajtoskifli, Datum(3000, 4, 1));
/// Kell még két kifli?
if (ennyi_kiflit % 2 == 1)
p1.elad(2, tejeskifli, Datum(3000, 4, 1));
#endif
p1.elad(3, tej28); /// még három liter tejet is eladunk ma
/// teljes litsta
cout << "\nOsszes eladas:" << endl;
p1.list(cout);
/// Eladások 3000. 4. 1-jén
cout << "\nEladasok (" << Datum(3000, 4,1 ) << "): " << endl;
p1.list(cout, Datum(3000, 4, 1));
/// Gyenge ellenőrzés: csak a sorok számát ellenőrizzük
TEST(Kassza, sorok_szama_3000_ben) {
std::stringstream ss;
p1.list(ss, Datum(3000, 4, 1)); // stringstrem-be listázunk
std::string s = ss.str(); // átalakítjuk std::string-gé
int cnt = std::count(s.begin(), s.end(), '\n'); // megszámoljuk benne a '\n' karaktereket
int elvart = 2; // tudjuk, hogy 2 tej
#ifdef KIFLI_IS_VAN
elvart += 1; // és 1 kifli
if (ennyi_kiflit % 2 == 1)
elvart +=1; // + 1, ha kellett még kifli
#endif
EXPECT_EQ(elvart, cnt) << "! ** Ketparameteres list: nem megfelelo szamu sort irt ki!" << endl;
} ENDM
/// Napi összeg
double sum = p1.napiOsszeg();
cout << "\nMai szumma: " << sum << "Ft" << endl;
/// megnézzük, hogy jól számolt-e
TEST(Kassza, mai_szumma) {
double s = 3 * tej28.getAr();
s += ennyi_tejet * tej15.getAr();
#ifdef KIFLI_IS_VAN
s += ennyi_kiflit * sajtoskifli.getAr(); // szerintunk ennyi
#endif
EXPECT_DOUBLE_EQ(s, sum) << "! ** napiOsszeg() nem jol mukodik!" << endl;
} ENDM
return 0;
}
cppbolt.png

29.5 KB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.2">
<help_text>// Uncomment the following line to change the fontsize and font:
fontsize=12
// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced
//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use +/- or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////
// This text will be stored with each diagram; use it for notes.</help_text>
<zoom_level>12</zoom_level>
<element>
<id>UMLClass</id>
<coordinates>
<x>324</x>
<y>216</y>
<w>300</w>
<h>180</h>
</coordinates>
<panel_attributes>Aru
--
#megnevezes: String
#egyseg: String
#ar: double
--
+Aru(nev: char*, egyseg: char* ar: double)
+getNev(): String
+getEgys(): String
+print(os: ostream&amp;): ostream&amp; virtual
~Aru(): virtual </panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>540</x>
<y>444</y>
<w>228</w>
<h>96</h>
</coordinates>
<panel_attributes>Kifli
--
-spec: String
--
+Kifli(ar: double, spec: char* = "")
+print(os: ostream&amp;): ostream&amp;</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>528</x>
<y>384</y>
<w>144</w>
<h>84</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;100.0;50.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>648</x>
<y>12</y>
<w>300</w>
<h>132</h>
</coordinates>
<panel_attributes>Tetel
--
+mennyiseg: double
+aru: Aru*
+datum: Datum
--
+Tetel()
+Tetel(Mennyi: double, aru: Aru*, d: datum)
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>648</x>
<y>216</y>
<w>300</w>
<h>204</h>
</coordinates>
<panel_attributes>Kassza
--
-db: size_t
_-maxdb: size_t = 20_
-tetelek: Tetel[maxdb]
--
+Kassza()
+elad(mennyi: double, mit: Aru&amp;,
mikor: Datum&amp; = Datum()): void
+list(os: ostream&amp;): void
+list(os: ostream&amp;, mikor: Datum&amp;): void
+napiOsszeg(mikor: Datum&amp;): double</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>780</x>
<y>132</y>
<w>60</w>
<h>108</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
m2=0..20</panel_attributes>
<additional_attributes>10.0;70.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>588</x>
<y>72</y>
<w>84</w>
<h>168</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
m2=1</panel_attributes>
<additional_attributes>50.0;10.0;10.0;10.0;10.0;120.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>540</x>
<y>36</y>
<w>132</w>
<h>60</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;&lt;-
m2=1
</panel_attributes>
<additional_attributes>90.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>324</x>
<y>12</y>
<w>228</w>
<h>192</h>
</coordinates>
<panel_attributes>Datum
--
-ev: int
-ho: int
-nap: int
--
+Datum()
+Datum(ev: int, ho: int, nap: int)
+getEv(): int
+getHo(): int
+getNap(): int
+operator==(d: Datum&amp;): bool
</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>288</x>
<y>444</y>
<w>228</w>
<h>132</h>
</coordinates>
<panel_attributes>Tej
--
-zsir: double
-spec: String
--
+Tej(zsir: double, ar: double,
spec: char* = "")
+print(os: ostream&amp;): ostream&amp;</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>372</x>
<y>384</y>
<w>120</w>
<h>84</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>80.0;10.0;10.0;50.0</additional_attributes>
</element>
</diagram>
/**
* \file datum.h
*
* Datum osztály tagfüggvényinek megvalósítása (definíciója)
*/
#include <iostream>
#include <sstream>
#include <ctime>
#include <iomanip>
#include "memtrace.h"
#include "datum.h"
using std::setw;
using std::setfill;
/// Paraméter nélkül hívható konstruktor.
/// Mai napot állítja be
Datum::Datum() {
time_t tim;
tim = time(NULL); // lekérdezzük a jelenlegi időt
struct tm *tp = localtime(&tim); // átalakítjuk
ev = tp->tm_year+1900;
ho = tp->tm_mon+1;
nap = tp->tm_mday;
}
/// Globális inserter eeee-hh-nn formában
/// @param os - output stream referencia
/// @param s - Datum referencia
/// @return output stream referencia
std::ostream& operator<<(std::ostream& os, const Datum& d) {
return os << setw(4) << d.getEv() << "-"
<< setw(2) << setfill('0') << d.getHo() << "-"
<< setw(2) << d.getNap();
}
#ifndef DATUM_H
#define DATUM_H
/**
* \file datum.h
*
* Datum osztály deklarációja és globális függvényei
*/
#include <iostream>
class Datum {
int ev; ///< év
int ho; ///< hónap
int nap; ///< nap
public:
/// Paraméter nélkül hívható konstruktor.
/// Mai napot állítja be
Datum();
/// Adott napot beállító konstruktor
/// @param ev - év
/// @param hó - hónap
/// @param nap - nap
Datum(int ev, int ho, int nap) :ev(ev), ho(ho), nap(nap) {}
/// Év lekérdezése
/// @return ev
int getEv() const { return ev;}
/// Hónap lekérdezése
/// @return honap
int getHo() const { return ho;}
/// Nap lekérdezése
/// @return nap
int getNap() const { return nap;}
/// Két dátum egyezőségét vizsgálja
/// @param d - jobb oldali operandus
/// @return true, ha egyezik a két dátum
bool operator==(const Datum& d) const {
return ev == d.ev && ho == d.ho && nap == d.nap;
}
};
/// Globális inserter
/// @param os - output stream referencia
/// @param s - Datum referencia
/// @return output stream referencia
std::ostream& operator<<(std::ostream& os, const Datum& d);
#endif // DATUM_H
This source diff could not be displayed because it is too large. You can view the blob instead.
warning: The selected output language "hungarian" has not been updated
since release 1.4.6. As a result some sentences may appear in English.
C:/Users/szebi/Desktop/ELOADAS_ELOADAS/PROGA/SVN_WORK/cporta_peldak/CppBolt/string5.h:4: warning: the name `string2_kesz.h' supplied as the second argument in the \file statement is not an input file
C:/Users/szebi/Desktop/ELOADAS_ELOADAS/PROGA/SVN_WORK/cporta_peldak/CppBolt/aru.h:22: warning: argument 'egység' of command @param is not found in the argument list of Aru::Aru(const char *nev, const char *egyseg, double ar)
C:/Users/szebi/Desktop/ELOADAS_ELOADAS/PROGA/SVN_WORK/cporta_peldak/CppBolt/aru.h:26: warning: The following parameters of Aru::Aru(const char *nev, const char *egyseg, double ar) are not documented:
parameter 'egyseg'
C:/Users/szebi/Desktop/ELOADAS_ELOADAS/PROGA/SVN_WORK/cporta_peldak/CppBolt/datum.h:21: warning: argument 'hó' of command @param is not found in the argument list of Datum::Datum(int ev, int ho, int nap)
C:/Users/szebi/Desktop/ELOADAS_ELOADAS/PROGA/SVN_WORK/cporta_peldak/CppBolt/datum.h:25: warning: The following parameters of Datum::Datum(int ev, int ho, int nap) are not documented:
parameter 'ho'
982e104e36f5b0f03305dec85be0fcab
\ No newline at end of file
3236a2143e09d8b5dc98461503e87902
\ No newline at end of file
0c96157182ff36a1640c67ace9504d6f
\ No newline at end of file
{\rtf1\ansi\ansicpg1250\uc1 \deff0\deflang1033\deflangfe1033
{\fonttbl {\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}
}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
{\stylesheet
{\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}
{\paperw11900\paperh16840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect}
{\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid \sbasedon0 \snext0 heading 1;}
{\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \sbasedon0 \snext0 heading 2;}
{\s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid \sbasedon0 \snext0 heading 3;}
{\s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive Default Paragraph Font;}
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive Default Paragraph Font;}
{\s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid \sbasedon0 \snext15 Title;}
{\s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid \sbasedon0 \snext16 Subtitle;}
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \sbasedon0 \snext17 BodyText;}
{\s18\widctlpar\fs22\cgrid \sbasedon0 \snext18 DenseText;}
{\s28\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext28 header;}
{\s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid \sbasedon0 \snext29 footer;}
{\s30\li360\sa60\sb120\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext30 GroupHeader;}
{\s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext41 Code Example 0;}
{\s41\li360\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext42 Code Example 1;}
{\s42\li720\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext43 Code Example 2;}
{\s43\li1080\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext44 Code Example 3;}
{\s44\li1440\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext45 Code Example 4;}
{\s45\li1800\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext46 Code Example 5;}
{\s46\li2160\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext47 Code Example 6;}
{\s47\li2520\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext48 Code Example 7;}
{\s48\li2880\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext49 Code Example 8;}
{\s49\li3240\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext49 Code Example 9;}
{\s50\li0\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext51 List Continue 0;}
{\s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext52 List Continue 1;}
{\s52\li720\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext53 List Continue 2;}
{\s53\li1080\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext54 List Continue 3;}
{\s54\li1440\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext55 List Continue 4;}
{\s55\li1800\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext56 List Continue 5;}
{\s56\li2160\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext57 List Continue 6;}
{\s57\li2520\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext58 List Continue 7;}
{\s58\li2880\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext59 List Continue 8;}
{\s59\li3240\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext59 List Continue 9;}
{\s60\li0\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext61 DescContinue 0;}
{\s61\li360\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext62 DescContinue 1;}
{\s62\li720\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext63 DescContinue 2;}
{\s63\li1080\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext64 DescContinue 3;}
{\s64\li1440\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext65 DescContinue 4;}
{\s65\li1800\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext66 DescContinue 5;}
{\s66\li2160\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext67 DescContinue 6;}
{\s67\li2520\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext68 DescContinue 7;}
{\s68\li2880\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext69 DescContinue 8;}
{\s69\li3240\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext69 DescContinue 9;}
{\s70\li0\sa30\sb30\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext81 LatexTOC 0;}
{\s71\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext82 LatexTOC 1;}
{\s72\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext83 LatexTOC 2;}
{\s73\li1080\sa21\sb21\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext84 LatexTOC 3;}
{\s74\li1440\sa18\sb18\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext85 LatexTOC 4;}
{\s75\li1800\sa15\sb15\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext86 LatexTOC 5;}
{\s76\li2160\sa12\sb12\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext87 LatexTOC 6;}
{\s77\li2520\sa9\sb9\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext88 LatexTOC 7;}
{\s78\li2880\sa6\sb6\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext89 LatexTOC 8;}
{\s79\li3240\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext89 LatexTOC 9;}
{\s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext81 \sautoupd List Bullet 0;}
{\s81\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls2\adjustright \fs20\cgrid \sbasedon0 \snext82 \sautoupd List Bullet 1;}
{\s82\fi-360\li1080\widctlpar\jclisttab\tx1080{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pndec }\ls3\adjustright \fs20\cgrid \sbasedon0 \snext83 \sautoupd List Bullet 2;}
{\s83\fi-360\li1440\widctlpar\jclisttab\tx1440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec }\ls4\adjustright \fs20\cgrid \sbasedon0 \snext84 \sautoupd List Bullet 3;}
{\s84\fi-360\li1800\widctlpar\jclisttab\tx1800{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec }\ls5\adjustright \fs20\cgrid \sbasedon0 \snext85 \sautoupd List Bullet 4;}
{\s85\fi-360\li2160\widctlpar\jclisttab\tx2160{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pndec }\ls6\adjustright \fs20\cgrid \sbasedon0 \snext86 \sautoupd List Bullet 5;}
{\s86\fi-360\li2520\widctlpar\jclisttab\tx2520{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pndec }\ls7\adjustright \fs20\cgrid \sbasedon0 \snext87 \sautoupd List Bullet 6;}
{\s87\fi-360\li2880\widctlpar\jclisttab\tx2880{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pndec }\ls8\adjustright \fs20\cgrid \sbasedon0 \snext88 \sautoupd List Bullet 7;}
{\s88\fi-360\li3240\widctlpar\jclisttab\tx3240{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pndec }\ls9\adjustright \fs20\cgrid \sbasedon0 \snext89 \sautoupd List Bullet 8;}
{\s89\fi-360\li3600\widctlpar\jclisttab\tx3600{\*\pn \pnlvlbody\ilvl0\ls10\pnrnot0\pndec }\ls10\adjustright \fs20\cgrid \sbasedon0 \snext89 \sautoupd List Bullet 9;}
{\s90\fi-360\li360\widctlpar\fs20\cgrid \sbasedon0 \snext91 \sautoupd List Enum 0;}
{\s91\fi-360\li720\widctlpar\fs20\cgrid \sbasedon0 \snext92 \sautoupd List Enum 1;}
{\s92\fi-360\li1080\widctlpar\fs20\cgrid \sbasedon0 \snext93 \sautoupd List Enum 2;}
{\s93\fi-360\li1440\widctlpar\fs20\cgrid \sbasedon0 \snext94 \sautoupd List Enum 3;}
{\s94\fi-360\li1800\widctlpar\fs20\cgrid \sbasedon0 \snext95 \sautoupd List Enum 4;}
{\s95\fi-360\li2160\widctlpar\fs20\cgrid \sbasedon0 \snext96 \sautoupd List Enum 5;}
{\s96\fi-360\li2520\widctlpar\fs20\cgrid \sbasedon0 \snext96 \sautoupd List Enum 5;}
{\s97\fi-360\li2880\widctlpar\fs20\cgrid \sbasedon0 \snext98 \sautoupd List Enum 7;}
{\s98\fi-360\li3240\widctlpar\fs20\cgrid \sbasedon0 \snext99 \sautoupd List Enum 8;}
{\s99\fi-360\li3600\widctlpar\fs20\cgrid \sbasedon0 \snext99 \sautoupd List Enum 9;}
}
{\info
{\title {\comment CppBolt }CppBolt}
{\comment K\'E9sz\'EDtetteDoxgyen. }
{\creatim \yr2019\mo3\dy19\hr20\min11\sec19}
}\pard\plain
\sectd\pgnlcrm
{\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}}
\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid
\vertalc\qc\par\par\par\par\par\par\par
\pard\plain \s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid
{\field\fldedit {\*\fldinst TITLE \\*MERGEFORMAT}{\fldrslt CppBolt}}\par
\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid
\par
\par\par\par\par\par\par\par\par\par\par\par\par
\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid
{\field\fldedit {\*\fldinst AUTHOR \\*MERGEFORMAT}{\fldrslt AUTHOR}}\par
Verzi\'F3 \par{\field\fldedit {\*\fldinst CREATEDATE \\*MERGEFORMAT}{\fldrslt Tue Mar 19 2019 }}\par
\page\page\vertalt
\pard\plain
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid Tartalomjegyz\'E9k\par
\pard\plain \par
{\field\fldedit {\*\fldinst TOC \\f \\*MERGEFORMAT}{\fldrslt Table of contents}}\par
\pard\plain
\sect \sbkpage \pgndec \pgnrestart
\sect \sectd \sbknone
{\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}}
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdrs\brdrw75\brsp20 \adjustright \par}
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
Hierarchikus mutat\'F3\par \pard\plain
{\tc \v Hierarchikus mutat\'F3}
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Oszt\'E1lyhierarchia\par \pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Majdnem (de nem teljesen) bet\'FBrendbe szedett lesz\'E1rmaz\'E1si lista:}
{
\par
\pard\plain \s71\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid
Aru\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAA \\*MERGEFORMAT}{\fldrslt pagenum}}
{
\par
\pard\plain \s72\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid
Kifli\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABH \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
Tej\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACC \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
}\par
Datum\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAN \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
Kassza\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAX \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
String\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAE \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
Tetel\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABE \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
}
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdrs\brdrw75\brsp20 \adjustright \par}
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
Oszt\'E1lymutat\'F3\par \pard\plain
{\tc \v Oszt\'E1lymutat\'F3}
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Oszt\'E1lylista\par \pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Az \'F6sszes oszt\'E1ly, strukt\'FAra, uni\'F3 \'E9s interf\'E9sz list\'E1ja r\'F6vid le\'EDr\'E1sokkal:}
{
\par
\pard\plain \s71\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid
{\b {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}} oszt\'E1ly })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAA \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAN \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}}
({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} oszt\'E1ly })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAX \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABH" }{}}{\fldrslt {\cs37\ul\cf2 Kifli}}}
({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABH" }{}}{\fldrslt {\cs37\ul\cf2 Kifli}}} oszt\'E1ly })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABH \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Header f\'E1jlokb\'F3l megfontoltan kell include-ot haszn\'E1lni })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAE \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACC" }{}}{\fldrslt {\cs37\ul\cf2 Tej}}}
({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACC" }{}}{\fldrslt {\cs37\ul\cf2 Tej}}} oszt\'E1ly })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACC \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
{\b {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABE" }{}}{\fldrslt {\cs37\ul\cf2 Tetel}}}
({\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABE" }{}}{\fldrslt {\cs37\ul\cf2 Tetel}}} publikus oszt\'E1ly: {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} ilyen t\'E9teleket t\'E1rol })} \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABE \\*MERGEFORMAT}{\fldrslt pagenum}}
\par
\par}
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdrs\brdrw75\brsp20 \adjustright \par}
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
Oszt\'E1lyok dokument\'E1ci\'F3ja{\tc \v Oszt\'E1lyok dokument\'E1ci\'F3ja}
\par \pard\plain
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Aru oszt\'E1lyreferencia\par \pard\plain
{\tc\tcl2 \v Aru}
{\xe \v Aru}
{\bkmkstart AAAAAAAAAA}
{\bkmkend AAAAAAAAAA}
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}} oszt\'E1ly. }}\par
{
{\f2 #include <aru.h>}}\par
Az Aru oszt\'E1ly sz\'E1rmaz\'E1si diagramja:{
\pard\plain
\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "a00592.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
}
\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus tagf\'FCggv\'E9nyek\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAB" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
(const char *nev, const char *{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAC" }{}}{\fldrslt {\cs37\ul\cf2 egyseg}}}
, double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAD" }{}}{\fldrslt {\cs37\ul\cf2 ar}}}
)\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor be\'E1ll\'EDtja az attrib\'FAtumokat. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAF" }{}}{\fldrslt {\cs37\ul\cf2 getNev}}}
() const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Megnevez\'E9s lek\'E9rdez\'E9se. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAG" }{}}{\fldrslt {\cs37\ul\cf2 getEgys}}}
() const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Mennyis\'E9gi egys\'E9g lek\'E9rdez\'E9se. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAH" }{}}{\fldrslt {\cs37\ul\cf2 getAr}}}
() const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Egys\'E9g\'E1r lek\'E9rdez\'E9se. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
virtual std::ostream & {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAI" }{}}{\fldrslt {\cs37\ul\cf2 print}}}
(std::ostream &os) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Attrib\'FAtumok ki\'EDr\'E1sa egy stream-re. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
virtual {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAJ" }{}}{\fldrslt {\cs37\ul\cf2 ~Aru}}}
(){\bkmkstart AAAAAAAAAJ}
{\bkmkend AAAAAAAAAJ}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Virtu\'E1lis destruktor. }{
}\par
}}
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
V\'E9dett attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAK" }{}}{\fldrslt {\cs37\ul\cf2 megnevezes}}}
{\bkmkstart AAAAAAAAAK}
{\bkmkend AAAAAAAAAK}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E1ru megnevez\'E9se. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAC" }{}}{\fldrslt {\cs37\ul\cf2 egyseg}}}
{\bkmkstart AAAAAAAAAC}
{\bkmkend AAAAAAAAAC}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E1ru mennyis\'E9gi egys\'E9ge (db, liter, kg, ...) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAD" }{}}{\fldrslt {\cs37\ul\cf2 ar}}}
{\bkmkstart AAAAAAAAAD}
{\bkmkend AAAAAAAAAD}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E1ru egys\'E9g\'E1ra. }{
}\par
}}
}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
R\'E9szletes le\'EDr\'E1s\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}} oszt\'E1ly. \par
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Konstruktorok \'E9s destruktorok dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v Aru\:Aru}
{\xe \v Aru\:Aru}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
Aru::Aru (const char * {\i nev}, const char * {\i egyseg}, double {\i ar}){\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAB}
{\bkmkend AAAAAAAAAB}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor be\'E1ll\'EDtja az attrib\'FAtumokat. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i nev} \cell }{- \'E1ru megnevez\'E9se \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i egys\'E9g} \cell }{- \'E1ru mennyis\'E9gi egys\'E9ge sz\'F6vegesen (db, liter, kg, ...) \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i ar} \cell }{- \'E1ru egys\'E9g\'E1ra \cell }
{\row }
}
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Tagf\'FCggv\'E9nyek dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v getAr\:Aru}
{\xe \v Aru\:getAr}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
double Aru::getAr () const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAH}
{\bkmkend AAAAAAAAAH}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Egys\'E9g\'E1r lek\'E9rdez\'E9se. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid - egys\'E9g\'E1r \par
}}}
{\xe \v getEgys\:Aru}
{\xe \v Aru\:getEgys}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
Aru::getEgys () const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAG}
{\bkmkend AAAAAAAAAG}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Mennyis\'E9gi egys\'E9g lek\'E9rdez\'E9se. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid - mennyis\'E9gi egys\'E9g \par
}}}
{\xe \v getNev\:Aru}
{\xe \v Aru\:getNev}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
Aru::getNev () const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAF}
{\bkmkend AAAAAAAAAF}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Megnevez\'E9s lek\'E9rdez\'E9se. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid - megnevez\'E9s \par
}}}
{\xe \v print\:Aru}
{\xe \v Aru\:print}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
virtual std::ostream& Aru::print (std::ostream & {\i os}) const{\f2 [inline]}, {\f2 [virtual]}}}
\par
{\bkmkstart AAAAAAAAAI}
{\bkmkend AAAAAAAAAI}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Attrib\'FAtumok ki\'EDr\'E1sa egy stream-re. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i os} \cell }{- output stream referencia \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid output stream referencia \par
}}{
\'DAjraimplement\'E1l\'F3 lesz\'E1rmazottak: {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAL" }{}}{\fldrslt {\cs37\ul\cf2 Tej}}}
\'E9s {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAM" }{}}{\fldrslt {\cs37\ul\cf2 Kifli}}}
.}\par
}
\par \pard\plain
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdremboss\brdrw15\brsp20 \adjustright \par}
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Datum oszt\'E1lyreferencia\par \pard\plain
{\tc\tcl2 \v Datum}
{\xe \v Datum}
{\bkmkstart AAAAAAAAAN}
{\bkmkend AAAAAAAAAN}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus tagf\'FCggv\'E9nyek\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAO" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
()\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Param\'E9ter n\'E9lk\'FCl h\'EDvhat\'F3 konstruktor. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAP" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
(int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAQ" }{}}{\fldrslt {\cs37\ul\cf2 ev}}}
, int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAR" }{}}{\fldrslt {\cs37\ul\cf2 ho}}}
, int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAS" }{}}{\fldrslt {\cs37\ul\cf2 nap}}}
)\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Adott napot be\'E1ll\'EDt\'F3 konstruktor. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAT" }{}}{\fldrslt {\cs37\ul\cf2 getEv}}}
() const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'C9v lek\'E9rdez\'E9se. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAU" }{}}{\fldrslt {\cs37\ul\cf2 getHo}}}
() const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
H\'F3nap lek\'E9rdez\'E9se. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAV" }{}}{\fldrslt {\cs37\ul\cf2 getNap}}}
() const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Nap lek\'E9rdez\'E9se. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
bool {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAW" }{}}{\fldrslt {\cs37\ul\cf2 operator==}}}
(const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
&d) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
K\'E9t d\'E1tum egyez\'F5s\'E9g\'E9t vizsg\'E1lja. }{
}\par
}}
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Priv\'E1t attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAQ" }{}}{\fldrslt {\cs37\ul\cf2 ev}}}
{\bkmkstart AAAAAAAAAQ}
{\bkmkend AAAAAAAAAQ}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'E9v. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAR" }{}}{\fldrslt {\cs37\ul\cf2 ho}}}
{\bkmkstart AAAAAAAAAR}
{\bkmkend AAAAAAAAAR}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
h\'F3nap }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
int {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAS" }{}}{\fldrslt {\cs37\ul\cf2 nap}}}
{\bkmkstart AAAAAAAAAS}
{\bkmkend AAAAAAAAAS}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
nap }{
}\par
}}
}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Konstruktorok \'E9s destruktorok dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v Datum\:Datum}
{\xe \v Datum\:Datum}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
Datum::Datum ()}}
\par
{\bkmkstart AAAAAAAAAO}
{\bkmkend AAAAAAAAAO}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Param\'E9ter n\'E9lk\'FCl h\'EDvhat\'F3 konstruktor. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Mai napot \'E1ll\'EDtja be \par
}}
{\xe \v Datum\:Datum}
{\xe \v Datum\:Datum}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
Datum::Datum (int {\i ev}, int {\i ho}, int {\i nap}){\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAP}
{\bkmkend AAAAAAAAAP}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Adott napot be\'E1ll\'EDt\'F3 konstruktor. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i ev} \cell }{- \'E9v \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i h\'F3} \cell }{- h\'F3nap \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i nap} \cell }{- nap \cell }
{\row }
}
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Tagf\'FCggv\'E9nyek dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v getEv\:Datum}
{\xe \v Datum\:getEv}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
int Datum::getEv () const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAT}
{\bkmkend AAAAAAAAAT}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'C9v lek\'E9rdez\'E9se. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid ev \par
}}}
{\xe \v getHo\:Datum}
{\xe \v Datum\:getHo}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
int Datum::getHo () const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAU}
{\bkmkend AAAAAAAAAU}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
H\'F3nap lek\'E9rdez\'E9se. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid honap \par
}}}
{\xe \v getNap\:Datum}
{\xe \v Datum\:getNap}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
int Datum::getNap () const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAV}
{\bkmkend AAAAAAAAAV}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Nap lek\'E9rdez\'E9se. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid nap \par
}}}
{\xe \v operator==\:Datum}
{\xe \v Datum\:operator==}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
bool Datum::operator== (const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
& {\i d}) const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAW}
{\bkmkend AAAAAAAAAW}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
K\'E9t d\'E1tum egyez\'F5s\'E9g\'E9t vizsg\'E1lja. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i d} \cell }{- jobb oldali operandus \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid true, ha egyezik a k\'E9t d\'E1tum \par
}}}
\par \pard\plain
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdremboss\brdrw15\brsp20 \adjustright \par}
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Kassza oszt\'E1lyreferencia\par \pard\plain
{\tc\tcl2 \v Kassza}
{\xe \v Kassza}
{\bkmkstart AAAAAAAAAX}
{\bkmkend AAAAAAAAAX}
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} oszt\'E1ly. }}\par
{
{\f2 #include <kassza.h>}}\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus tagf\'FCggv\'E9nyek\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAY" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}}
()\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
tarol\'F3. Tetel-eket t\'E1rol }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAZ" }{}}{\fldrslt {\cs37\ul\cf2 elad}}}
(double mennyi, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
&mit, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
&mikor={\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
())\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Elad\'E1s. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABA" }{}}{\fldrslt {\cs37\ul\cf2 list}}}
(std::ostream &os) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} tartalm\'E1nak kilist\'E1z\'E1sa. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABB" }{}}{\fldrslt {\cs37\ul\cf2 list}}}
(std::ostream &os, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
&mikor) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Elad\'E1sok list\'E1z\'E1sa egy adott napon. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABC" }{}}{\fldrslt {\cs37\ul\cf2 napiOsszeg}}}
(const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
&mikor={\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
())\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Elad\'E1sok \'F6sszege egy adott napra. }{
}\par
}}
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Priv\'E1t attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
size_t {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABD" }{}}{\fldrslt {\cs37\ul\cf2 db}}}
{\bkmkstart AAAAAAAABD}
{\bkmkend AAAAAAAABD}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
tarolt darabsz\'E1m }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABE" }{}}{\fldrslt {\cs37\ul\cf2 Tetel}}}
{\b tetelek} [{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABF" }{}}{\fldrslt {\cs37\ul\cf2 maxdb}}}
]{\bkmkstart AAAAAAAABG}
{\bkmkend AAAAAAAABG}
\par
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Statikus priv\'E1t attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
static const size_t {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABF" }{}}{\fldrslt {\cs37\ul\cf2 maxdb}}}
= 20{\bkmkstart AAAAAAAABF}
{\bkmkend AAAAAAAABF}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
m\'E9ret }{
}\par
}}
}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
R\'E9szletes le\'EDr\'E1s\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} oszt\'E1ly. \par
}
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Fix darabsz\'E1m\'FA {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABE" }{}}{\fldrslt {\cs37\ul\cf2 Tetel}}} t\'E1rol\'E1s\'E1ra k\'E9pes. Ha betelik, const char* kiv\'E9telt dob \par
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Konstruktorok \'E9s destruktorok dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v Kassza\:Kassza}
{\xe \v Kassza\:Kassza}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
Kassza::Kassza (){\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAAAY}
{\bkmkend AAAAAAAAAY}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
tarol\'F3. Tetel-eket t\'E1rol }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'DCres kassza \par
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Tagf\'FCggv\'E9nyek dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v elad\:Kassza}
{\xe \v Kassza\:elad}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void Kassza::elad (double {\i mennyi}, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
& {\i mit}, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
& {\i mikor} = {\f2 {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
()})}}
\par
{\bkmkstart AAAAAAAAAZ}
{\bkmkend AAAAAAAAAZ}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Elad\'E1s. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i mennyi} \cell }{- eladott mennyis\'E9g \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i mit} \cell }{- referencia az eladott \'E1rura (Kompatibilit\'E1s kihaszn\'E1l\'E1sa) \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i mikor} \cell }{- elad\'E1s d\'E1tuma \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid kiv\'E9telt dob, ha nem f\'E9r be \par
}}}
{\xe \v list\:Kassza}
{\xe \v Kassza\:list}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void Kassza::list (std::ostream & {\i os}) const}}
\par
{\bkmkstart AAAAAAAABA}
{\bkmkend AAAAAAAABA}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} tartalm\'E1nak kilist\'E1z\'E1sa. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i os} \cell }{- output stream \cell }
{\row }
}
}}
{\xe \v list\:Kassza}
{\xe \v Kassza\:list}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void Kassza::list (std::ostream & {\i os}, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
& {\i mikor}) const}}
\par
{\bkmkstart AAAAAAAABB}
{\bkmkend AAAAAAAABB}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Elad\'E1sok list\'E1z\'E1sa egy adott napon. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i os} \cell }{- output stream \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i mikor} \cell }{- melyik nap \cell }
{\row }
}
}}
{\xe \v napiOsszeg\:Kassza}
{\xe \v Kassza\:napiOsszeg}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
double Kassza::napiOsszeg (const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
& {\i mikor} = {\f2 {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
()})}}
\par
{\bkmkstart AAAAAAAABC}
{\bkmkend AAAAAAAABC}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Elad\'E1sok \'F6sszege egy adott napra. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Elad\'E1sok \'F6sszege egy adott nara.\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i mikor} \cell }{- melyik nap \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid - \'F6sszeg \par
}}}
\par \pard\plain
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdremboss\brdrw15\brsp20 \adjustright \par}
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Kifli oszt\'E1lyreferencia\par \pard\plain
{\tc\tcl2 \v Kifli}
{\xe \v Kifli}
{\bkmkstart AAAAAAAABH}
{\bkmkend AAAAAAAABH}
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABH" }{}}{\fldrslt {\cs37\ul\cf2 Kifli}}} oszt\'E1ly. }}\par
{
{\f2 #include <kifli.h>}}\par
A Kifli oszt\'E1ly sz\'E1rmaz\'E1si diagramja:{
\pard\plain
\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "a00584.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
}
\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus tagf\'FCggv\'E9nyek\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABI" }{}}{\fldrslt {\cs37\ul\cf2 Kifli}}}
(double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAD" }{}}{\fldrslt {\cs37\ul\cf2 ar}}}
, const char *{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABJ" }{}}{\fldrslt {\cs37\ul\cf2 spec}}}
="")\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor be\'E1ll\'EDtja az attrib\'FAtumokat (\'F5soszt\'E1ly\'E9t is) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
std::ostream & {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAM" }{}}{\fldrslt {\cs37\ul\cf2 print}}}
(std::ostream &os) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Attrib\'FAtumok ki\'EDr\'E1sa egy stream-re. }{
}\par
}}
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Priv\'E1t attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABJ" }{}}{\fldrslt {\cs37\ul\cf2 spec}}}
{\bkmkstart AAAAAAAABJ}
{\bkmkend AAAAAAAABJ}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
kifli fajta }{
}\par
}}
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Additional Inherited Members\par
\pard\plain
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
R\'E9szletes le\'EDr\'E1s\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABH" }{}}{\fldrslt {\cs37\ul\cf2 Kifli}}} oszt\'E1ly. \par
}
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
spec attrib\'FAtuma a kifli fajt\'E1ja \par
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Konstruktorok \'E9s destruktorok dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v Kifli\:Kifli}
{\xe \v Kifli\:Kifli}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
Kifli::Kifli (double {\i ar}, const char * {\i spec} = {\f2 ""}){\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAABI}
{\bkmkend AAAAAAAABI}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor be\'E1ll\'EDtja az attrib\'FAtumokat (\'F5soszt\'E1ly\'E9t is) }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i ar} \cell }{- kifli egys\'E9g\'E1ra \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i spec} \cell }{- kifli fajt\'E1ja \cell }
{\row }
}
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Tagf\'FCggv\'E9nyek dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v print\:Kifli}
{\xe \v Kifli\:print}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
std::ostream& Kifli::print (std::ostream & {\i os}) const{\f2 [inline]}, {\f2 [virtual]}}}
\par
{\bkmkstart AAAAAAAAAM}
{\bkmkend AAAAAAAAAM}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Attrib\'FAtumok ki\'EDr\'E1sa egy stream-re. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i os} \cell }{- output stream referencia \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid output stream referencia \par
}}{
\'DAjraimplement\'E1lt \'F5s\'F6k: {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAI" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
.}\par
}
\par \pard\plain
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdremboss\brdrw15\brsp20 \adjustright \par}
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
String oszt\'E1lyreferencia\par \pard\plain
{\tc\tcl2 \v String}
{\xe \v String}
{\bkmkstart AAAAAAAAAE}
{\bkmkend AAAAAAAAAE}
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Header f\'E1jlokb\'F3l megfontoltan kell include-ot haszn\'E1lni. }}\par
{
{\f2 #include <string5.h>}}\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus tagf\'FCggv\'E9nyek\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
size_t {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABK" }{}}{\fldrslt {\cs37\ul\cf2 size}}}
() const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
hossz lez\'E1r\'F3 nulla n\'E9lk\'FCl }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABL" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
(){\bkmkstart AAAAAAAABL}
{\bkmkend AAAAAAAABL}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Default konstruktor: }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
const char * {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABM" }{}}{\fldrslt {\cs37\ul\cf2 c_str}}}
() const{\bkmkstart AAAAAAAABM}
{\bkmkend AAAAAAAABM}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
C-stringet ad vissza. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABN" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
(char ch){\bkmkstart AAAAAAAABN}
{\bkmkend AAAAAAAABN}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor: egy char karakterb\'F5l (createStrFromChar) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABO" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
(const char *p){\bkmkstart AAAAAAAABO}
{\bkmkend AAAAAAAABO}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor: egy null\'E1val lez\'E1rt char sorozatb\'F3l (createStringFromCharStr) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABP" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
(const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
&s1)\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
M\'C1SOL\'D3 konstruktor, ami a createStringFromString-b\'F5l keletkezett. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABQ" }{}}{\fldrslt {\cs37\ul\cf2 ~String}}}
(){\bkmkstart AAAAAAAABQ}
{\bkmkend AAAAAAAABQ}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Destruktor (disposeString) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABR" }{}}{\fldrslt {\cs37\ul\cf2 printDbg}}}
(const char *txt="") const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Egy\'E9b tagf\'FCggv\'E9nyek: }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
& {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABS" }{}}{\fldrslt {\cs37\ul\cf2 operator=}}}
(const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
&rhs_s)\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Oper\'E1torok: }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
& {\b operator+=} (const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
&rhs_s){\bkmkstart AAAAAAAABT}
{\bkmkend AAAAAAAABT}
\par
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABU" }{}}{\fldrslt {\cs37\ul\cf2 operator+}}}
(const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
&rhs_s) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
K\'E9t Stringet \'F6sszef\'FBz (concatString) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABV" }{}}{\fldrslt {\cs37\ul\cf2 operator+}}}
(char rhs_c) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Sztrinhez karaktert \'F6sszef\'FBz (concatString) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
char & {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABW" }{}}{\fldrslt {\cs37\ul\cf2 operator[]}}}
(unsigned int idx)\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
A string egy megadott index\'FB elem\'E9nek REFERENCI\'C1J\'C1VAL t\'E9r vissza. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
const char & {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABX" }{}}{\fldrslt {\cs37\ul\cf2 operator[]}}}
(unsigned int idx) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
A string egy megadott index\'FB elem\'E9nek REFERENCI\'C1J\'C1VAL t\'E9r vissza. }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
void {\b erase} (){\bkmkstart AAAAAAAABY}
{\bkmkend AAAAAAAABY}
\par
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Priv\'E1t attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
char * {\b pData}{\bkmkstart AAAAAAAABZ}
{\bkmkend AAAAAAAABZ}
\par
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
size_t {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACA" }{}}{\fldrslt {\cs37\ul\cf2 len}}}
{\bkmkstart AAAAAAAACA}
{\bkmkend AAAAAAAACA}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
pointer az adatra }{
}\par
}}
}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
R\'E9szletes le\'EDr\'E1s\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Header f\'E1jlokb\'F3l megfontoltan kell include-ot haszn\'E1lni. \par
}
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\par
{\bkmkstart AAAAAAAACB}
{\bkmkend AAAAAAAACB}
{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Feladat:
\par}
{\tc\tcl2 \v Feladat:}
A tantermi gyakorlatokon, valamint a 3. laborgyakorlaton is foglalkoztunk egy olyan sztring ({\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}) adatszerkezet \'E9s a rajta m\'FBveleteket v\'E9gz\'F5 f\'FCggv\'E9nyek megtervez\'E9s\'E9vel/impelment\'E1l\'E1s\'E1val ami dinamikusan t\'E1rol \'E9s annyi mem\'F3ri\'E1t foglal amennyi a t\'E1rol\'E1shoz sz\'FCks\'E9ges.\par
Ezeket \'E9s a tanultakat felhaszn\'E1lva a string2.h \'E9s a string2.cpp \'E1llom\'E1nyokban defini\'E1ljon ill. implement\'E1ljon egy olyan sztring ({\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}) oszt\'E1lyt C++ nyelven, ami dinamikusan t\'E1rol \'E9s rendelkezik az al\'E1bbi tulajosn\'E1gokkal!\par
1 A param\'E9ter n\'E9lk\'FCl h\'EDvhat\'F3 konstruktora \'FCres sztringet hozzon \'E9tre!{
\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
1.\tab Van olyan tagf\'FCggv\'E9nye ( {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABM" }{}}{\fldrslt {\cs37\ul\cf2 c_str()}}} ), ami C-sztringgel, azaz null\'E1val lez\'E1rt karaktersorozatra mutat\'F3 pointerel (const char *) t\'E9r vissza.\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
2.\tab Van olyan konstruktora, ami karakterb\'F5l hoz l\'E9tre sztringet.\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
3.\tab Van olyan konstruktora, ami C-sztringb\'F5l (const char*) hoz l\'E9tre sztringet.\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
4.\tab Az oszt\'E1lyb\'F3l l\'E9trehozott objektum legyen \'E1tadhat\'F3 \'E9rt\'E9kkparam\'E9terk\'E9nt!\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
5.\tab T\'E1mogassa a t\'F6bbsz\'F6r\'F6s \'E9rt\'E9kad\'E1st (b = a = a)! 7 Legyenek olyan oper\'E1rorai (operator+), amivel a sztring v\'E9g\'E9hez sztringet, \'E9s karaktert lehet f\'FBzni!\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
6.\tab Lehessen karakterhez is sztringet f\'FBzni a + oper\'E1torral!\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
7.\tab A t\'E1rolt a karakterek legyenek el\'E9rhet\'F5ek a szok\'E1sos m\'F3don indexel\'E9ssel! Az indexel\'E9ssel el\'E9r elem legyen haszn\'E1lhat\'F3 bal\'E9rt\'E9kk\'E9nt is! A konstans objektumok is legyenek indexelhet\'F5k. Az indexel\'E9s oper\'E1tor hiba eset\'E9n dobjon const char * kiv\'E9telt!\par}
K\'E9sz\'EDtsen olyan << oper\'E1tort, amivel egy sztring ki\'EDrhat\'F3 egy ostream t\'EDpus\'FA objektumra!\par
Szorgalmi feladatok:{
\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
1.\tab K\'E9sz\'EDtsen olyan f\'FBzhet\'F5 >> oper\'E1tort, amivel be tud olvasni egy sz\'F3t egy sztring-be! A beolvas\'F3 m\'FBk\'F6dj\'F6n \'FAgy, mint a scanf s, azaz a sz\'F3 v\'E9g\'E9t white space hat\'E1rolja! A sz\'F3 eleji white space karaktereket pedig el kell dobni. *Megj: az istream wshite space kezel\'E9se a flags() tagf\'FCggv\'E9nnyel szab\'E1lyozhat\'F3\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
2.\tab Pr\'F3b\'E1lja ki az \'E9kezetes karakterek rendez\'E9s\'E9t is! Ehhez elk\'E9sz\'EDtett\'FCnk egy egyszer\'FB k\'F3dr\'E9szletet ami qsort() f\'FCggv\'E9nyt haszn\'E1l. \'C9rtse meg a rendez.cpp f\'E1jlban lev\'F5 k\'F3d m\'FBk\'F6d\'E9s\'E9t \'E9s futtassa a programot!\par
\pard\plain \s90\fi-360\li360\widctlpar\fs20\cgrid
3.\tab A setlocale f\'FCggv\'E9nyh\'EDv\'E1s be\'E1ll\'EDtja a karakterek \'E9s sztringek \'F6sszehasonl\'EDt\'E1s\'E1hoz sz\'FCks\'E9ges nyelvi k\'F6rnyezetet (LC_COLLATE) pr\'F3b\'E1lja ki! V\'E1ltozott a rendez\'E9si sorrend? N\'E9vteret azonban nem c\'E9lszer\'FB kinyitni, mert annak hat\'E1sa zavar\'F3 lehet ott ahol ez a header include-olva lesz. A {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}} oszt\'E1ly. A 'pData'-ban vannak a karakterek (a lez\'E1r\'F3 null\'E1val egy\'FCtt), 'len' a hossza. A hosszba nem sz\'E1m\'EDt bele a lez\'E1r\'F3 nulla. \par}
\par}
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Konstruktorok \'E9s destruktorok dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v String\:String}
{\xe \v String\:String}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
String::String (const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
& {\i s1})}}
\par
{\bkmkstart AAAAAAAABP}
{\bkmkend AAAAAAAABP}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
M\'C1SOL\'D3 konstruktor, ami a createStringFromString-b\'F5l keletkezett. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i s1} \cell }{- {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}, amib\'F5l l\'E9trehozzuk az \'FAj String-et \cell }
{\row }
}
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Tagf\'FCggv\'E9nyek dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v operator+\:String}
{\xe \v String\:operator+}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
String::operator+ (const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
& {\i rhs_s}) const}}
\par
{\bkmkstart AAAAAAAABU}
{\bkmkend AAAAAAAABU}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
K\'E9t Stringet \'F6sszef\'FBz (concatString) }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i rhs_s} \cell }{- jobboldali {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}} \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid \'FAj {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}, ami tartalmazza a k\'E9t stringet egm\'E1s ut\'E1n \par
}}}
{\xe \v operator+\:String}
{\xe \v String\:operator+}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
String::operator+ (char {\i rhs_c}) const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAABV}
{\bkmkend AAAAAAAABV}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Sztrinhez karaktert \'F6sszef\'FBz (concatString) }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i rhs_c} \cell }{- jobboldali karakter \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid \'FAj {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}, ami tartalmazza a k\'E9t sztringet egym\'E1s ut\'E1n \par
}}}
{\xe \v operator=\:String}
{\xe \v String\:operator=}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
& String::operator= (const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
& {\i rhs_s})}}
\par
{\bkmkstart AAAAAAAABS}
{\bkmkend AAAAAAAABS}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Oper\'E1torok: }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
\'C9rt\'E9kad\'F3 oper\'E1tor is kell ! {\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i rhs_s} \cell }{- jobboldali {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}} \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid baoldali (m\'F3dos\'EDtott) string (referenci\'E1ja) \par
}}}
{\xe \v operator[]\:String}
{\xe \v String\:operator[]}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
char& String::operator[] (unsigned int {\i idx})}}
\par
{\bkmkstart AAAAAAAABW}
{\bkmkend AAAAAAAABW}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
A string egy megadott index\'FB elem\'E9nek REFERENCI\'C1J\'C1VAL t\'E9r vissza. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
charAtString-b\'F5l keletkezett, de ezt bal oldalon is lehet haszn\'E1lni {\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i idx} \cell }{- charakter indexe \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid karakter (referencia) Indexel\'E9si hiba eset\'E9n const char* kiv\'E9telt dob (assert helyett). \par
}}}
{\xe \v operator[]\:String}
{\xe \v String\:operator[]}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
const char& String::operator[] (unsigned int {\i idx}) const}}
\par
{\bkmkstart AAAAAAAABX}
{\bkmkend AAAAAAAABX}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
A string egy megadott index\'FB elem\'E9nek REFERENCI\'C1J\'C1VAL t\'E9r vissza. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
charAtString-b\'F5l keletkezett. Konstans stringre alkalmazhat\'F3. Indexel\'E9si hiba eset\'E9n const char* kiv\'E9telt dob (assert helyett). {\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i idx} \cell }{- karakter indexe \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid karakter (referencia) Indexel\'E9si hiba eset\'E9n const char* kiv\'E9telt dob (assert helyett). \par
}}}
{\xe \v printDbg\:String}
{\xe \v String\:printDbg}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
void String::printDbg (const char * {\i txt} = {\f2 ""}) const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAABR}
{\bkmkend AAAAAAAABR}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Egy\'E9b tagf\'FCggv\'E9nyek: }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Ki\'EDrunk egy Stringet (debug c\'E9lokra) (ez k\'E9sz) El\'F6tte ki\'EDrunk egy tetsz\'F5leges sz\'F6veget. {\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i txt} \cell }{- null\'E1val lez\'E1rt sz\'F6vegre mutat\'F3 pointer \cell }
{\row }
}
}}
{\xe \v size\:String}
{\xe \v String\:size}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
size_t String::size () const{\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAABK}
{\bkmkend AAAAAAAABK}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
hossz lez\'E1r\'F3 nulla n\'E9lk\'FCl }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Az els\'F5 k\'E9t feladatot el\'F5re megoldottuk, de lehet, hogy nem j\'F3l. Az \'FCres string reprezent\'E1ci\'F3ja nem szerencs\'E9s, mert \'EDgy NULL pointerr\'E9 konvert\'E1l a {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABM" }{}}{\fldrslt {\cs37\ul\cf2 c_str()}}}, ami k\'FCl\'F6n kezel\'E9st ig\'E9nyel a k\'E9s\'F5bbiekben, \'EDgy a teszt program sem fogadja el. Gondolja v\'E9gig, \'E9s v\'E1ltoztassa meg! K\'E9t lehet\'F5s\'E9g van: a) nem NULL pointert t\'E1rol, hanem t\'E9ynlegesen \'FCres sringet. b) a {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABM" }{}}{\fldrslt {\cs37\ul\cf2 c_str()}}} \'FCres stringet ad vissza B\'E1rmelyik j\'F3, mert ez az oszt\'E1ly bel\'FCgye. \par
}}
\par \pard\plain
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdremboss\brdrw15\brsp20 \adjustright \par}
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Tej oszt\'E1lyreferencia\par \pard\plain
{\tc\tcl2 \v Tej}
{\xe \v Tej}
{\bkmkstart AAAAAAAACC}
{\bkmkend AAAAAAAACC}
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACC" }{}}{\fldrslt {\cs37\ul\cf2 Tej}}} oszt\'E1ly. }}\par
{
{\f2 #include <tej.h>}}\par
A Tej oszt\'E1ly sz\'E1rmaz\'E1si diagramja:{
\pard\plain
\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "a00596.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
}
\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus tagf\'FCggv\'E9nyek\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACD" }{}}{\fldrslt {\cs37\ul\cf2 Tej}}}
(double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACE" }{}}{\fldrslt {\cs37\ul\cf2 zsir}}}
, double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAD" }{}}{\fldrslt {\cs37\ul\cf2 ar}}}
, const char *{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACF" }{}}{\fldrslt {\cs37\ul\cf2 spec}}}
="")\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor be\'E1ll\'EDtja az attrib\'FAtumokat (\'F5soszt\'E1ly\'E9t is) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
std::ostream & {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAL" }{}}{\fldrslt {\cs37\ul\cf2 print}}}
(std::ostream &os) const\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Attrib\'FAtumok ki\'EDr\'E1sa egy stream-re. }{
}\par
}}
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Priv\'E1t attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACE" }{}}{\fldrslt {\cs37\ul\cf2 zsir}}}
{\bkmkstart AAAAAAAACE}
{\bkmkend AAAAAAAACE}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
tej zs\'EDrtartalma %%) }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAE" }{}}{\fldrslt {\cs37\ul\cf2 String}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACF" }{}}{\fldrslt {\cs37\ul\cf2 spec}}}
{\bkmkstart AAAAAAAACF}
{\bkmkend AAAAAAAACF}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
tej fajt\'E1ja }{
}\par
}}
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Additional Inherited Members\par
\pard\plain
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
R\'E9szletes le\'EDr\'E1s\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACC" }{}}{\fldrslt {\cs37\ul\cf2 Tej}}} oszt\'E1ly. \par
}
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
spec attrib\'FAtuma a tej fajt\'E1ja, \'E9s sz\'EDrtartalma \par
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Konstruktorok \'E9s destruktorok dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v Tej\:Tej}
{\xe \v Tej\:Tej}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
Tej::Tej (double {\i zsir}, double {\i ar}, const char * {\i spec} = {\f2 ""}){\f2 [inline]}}}
\par
{\bkmkstart AAAAAAAACD}
{\bkmkend AAAAAAAACD}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Konstruktor be\'E1ll\'EDtja az attrib\'FAtumokat (\'F5soszt\'E1ly\'E9t is) }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i zsir} \cell }{- tej zs\'EDrtartalma \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i ar} \cell }{- tej egys\'E9g\'E1ra \cell }
{\row }
\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i spec} \cell }{- tej fajt\'E1ja \cell }
{\row }
}
}}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Tagf\'FCggv\'E9nyek dokument\'E1ci\'F3ja\par
\pard\plain
{\xe \v print\:Tej}
{\xe \v Tej\:print}
\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
{\b
std::ostream& Tej::print (std::ostream & {\i os}) const{\f2 [inline]}, {\f2 [virtual]}}}
\par
{\bkmkstart AAAAAAAAAL}
{\bkmkend AAAAAAAAAL}
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
Attrib\'FAtumok ki\'EDr\'E1sa egy stream-re. }}\par
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\par
{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Param\'E9terek:\par}
\pard\plain \s61\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
\pard \widctlpar\intbl\adjustright
{{\i os} \cell }{- output stream referencia \cell }
{\row }
}
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Visszat\'E9r\'E9si \'E9rt\'E9k:\par}\pard\plain \s62\li720\widctlpar\ql\adjustright \fs20\cgrid output stream referencia \par
}}{
\'DAjraimplement\'E1lt \'F5s\'F6k: {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAI" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
.}\par
}
\par \pard\plain
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdremboss\brdrw15\brsp20 \adjustright \par}
\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid
Tetel strukt\'FArareferencia\par \pard\plain
{\tc\tcl2 \v Tetel}
{\xe \v Tetel}
{\bkmkstart AAAAAAAABE}
{\bkmkend AAAAAAAABE}
\par
{
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABE" }{}}{\fldrslt {\cs37\ul\cf2 Tetel}}} publikus oszt\'E1ly: {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} ilyen t\'E9teleket t\'E1rol. }}\par
{
{\f2 #include <kassza.h>}}\par
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus tagf\'FCggv\'E9nyek\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\b Tetel} (double mennyi, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
*{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACG" }{}}{\fldrslt {\cs37\ul\cf2 aru}}}
, const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
&d){\bkmkstart AAAAAAAACH}
{\bkmkend AAAAAAAACH}
\par
}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
Publikus attrib\'FAtumok\par
\pard\plain
{
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
double {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACI" }{}}{\fldrslt {\cs37\ul\cf2 mennyiseg}}}
{\bkmkstart AAAAAAAACI}
{\bkmkend AAAAAAAACI}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
eladott \'E1ru mennyis\'E9ge }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
const {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAA" }{}}{\fldrslt {\cs37\ul\cf2 Aru}}}
* {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACG" }{}}{\fldrslt {\cs37\ul\cf2 aru}}}
{\bkmkstart AAAAAAAACG}
{\bkmkend AAAAAAAACG}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
eladott \'E1ru. POINTER az \'F5s oszt\'E1lyra! }{
}\par
}}
\pard\plain \s80\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAN" }{}}{\fldrslt {\cs37\ul\cf2 Datum}}}
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAACJ" }{}}{\fldrslt {\cs37\ul\cf2 datum}}}
{\bkmkstart AAAAAAAACJ}
{\bkmkend AAAAAAAACJ}
\par
{
\pard\plain \s51\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
elad\'E1s d\'E1tuma }{
}\par
}}
}
{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid
R\'E9szletes le\'EDr\'E1s\par
\pard\plain
{
\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAABE" }{}}{\fldrslt {\cs37\ul\cf2 Tetel}}} publikus oszt\'E1ly: {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} ilyen t\'E9teleket t\'E1rol. \par
}
{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid
{\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAAX" }{}}{\fldrslt {\cs37\ul\cf2 Kassza}}} bels\'F5 oszt\'E1lya is lehetne, de tal\'E1n \'EDgy jobban olvashat\'F3 \par
}}
\pard\plain \sect\sbknone
{\pard\widctlpar\brdrb\brdrs\brdrw75\brsp20 \adjustright \par}
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid T\'E1rgymutat\'F3\par
\pard\plain
{\tc \v T\'E1rgymutat\'F3}
{\field\fldedit {\*\fldinst INDEX \\c2 \\*MERGEFORMAT}{\fldrslt INDEX}}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
#ifndef GTEST_LITE_H
#define GTEST_LITE_H
/**
* \file gtest_lite.h (v3/2019)
*
* Google gtest keretrendszerhez hasonló rendszer.
* Sz.I. 2015., 2016., 2017. (_Has_X)
* Sz.I. 2018 (template), ENDM, ENDMsg, nullptr_t
* Sz.I. 2019 singleton
*
* A tesztelés legalapvetőbb funkcióit támogató függvények és makrók.
* Nem szálbiztos megvalósítás.
*
*
* Szabadon felhasználható, bővíthető.
*
* Használati példa:
* Teszteljük az f(x)=2*x függvényt:
* int f(int x) { return 2*x; }
*
* int main() {
* TEST(TeszEsetNeve, TesztNeve)
* EXPECT_EQ(0, f(0));
* EXPECT_EQ(4, f(2)) << "A függvény hibás eredményt adott" << std::endl;
* ...
* END
* ...
*
* A működés részleteinek megértése szorgalmi feladat.
*/
#include <iostream>
#include <cassert>
#include <cmath>
#include <cstring>
#include <limits>
#include <string>
#include <fstream>
#ifdef MEMTRACE
#include "memtrace.h"
#endif
// Két makró az egyes tesztek elé és mögé:
// A két makró a kapcsos zárójelekkel egy új blokkot hoz létre, amiben
// a nevek lokálisak, így elkerülhető a névütközés.
/// Teszt kezdete. A makró paraméterezése hasonlít a gtest
/// paraméterezéséhez. Így az itt elkészített testek könnyen átemelhetők
/// a gtest keretrendszerbe.
/// @param C - teszteset neve (csak a gtest kompatibilitás miatt van külön neve az eseteknek)
/// @param N - teszt neve
#define TEST(C, N) { gtest_lite::test.begin(#C"."#N);
/// Teszteset vége.
#define END gtest_lite::test.end(); }
/// Teszteset vége allokált blokkok számának összehasonlításával
/// Ez az ellenőrzés nem bomba biztos.
#define ENDM gtest_lite::test.end(true); }
/// Teszteset vége allokált blokkok számának összehasonlításával
/// Ez az ellenőrzés nem bomba biztos.
/// Ha hiba van kiírja az üzenetet.
#define ENDMsg(t) gtest_lite::test.end(true) << t << std::endl; }
// Eredmények vizsgálatát segítő makrók.
// A paraméterek és a funkciók a gtest keretrendszerrel megegyeznek.
/// Sikeres teszt makrója
#define SUCCEED() gtest_lite::test.expect(true, __FILE__, __LINE__, "SUCCEED()", true)
/// Sikertelen teszt makrója
#define FAIL() gtest_lite::test.expect(false, __FILE__, __LINE__, "FAIL()", true)
/// Azonosságot elváró makró
#define EXPECT_EQ(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::eq, __FILE__, __LINE__, "EXPECT_EQ(" #expected ", " #actual ")" )
/// Eltérést elváró makró
#define EXPECT_NE(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::ne, __FILE__, __LINE__, "EXPECT_NE(" #expected ", " #actual ")", "etalon" )
/// Kisebb, vagy egyenlő relációt elváró makró
#define EXPECT_LE(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::le, __FILE__, __LINE__, "EXPECT_LE(" #expected ", " #actual ")", "etalon" )
/// Kisebb, mint relációt elváró makró
#define EXPECT_LT(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::lt, __FILE__, __LINE__, "EXPECT_LT(" #expected ", " #actual ")", "etalon" )
/// Nagyobb, vagy egyenlő relációt elváró makró
#define EXPECT_GE(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::ge, __FILE__, __LINE__, "EXPECT_GE(" #expected ", " #actual ")", "etalon" )
/// Nagyobb, mint relációt elváró makró
#define EXPECT_GT(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::gt, __FILE__, __LINE__, "EXPECT_GT(" #expected ", " #actual ")", "etalon" )
/// Igaz értéket elváró makró
#define EXPECT_TRUE(actual) gtest_lite::EXPECT_(true, actual, gtest_lite::eq, __FILE__, __LINE__, "EXPECT_TRUE(" #actual ")" )
/// Hamis értéket elváró makró
#define EXPECT_FALSE(actual) gtest_lite::EXPECT_(false, actual, gtest_lite::eq, __FILE__, __LINE__, "EXPECT_FALSE(" #actual ")" )
/// Valós számok azonosságát elváró makró
#define EXPECT_FLOAT_EQ(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::almostEQ, __FILE__, __LINE__, "EXPECT_FLOAT_EQ(" #expected ", " #actual ")" )
/// Valós számok azonosságát elváró makró
#define EXPECT_DOUBLE_EQ(expected, actual) gtest_lite::EXPECT_(expected, actual, gtest_lite::almostEQ, __FILE__, __LINE__, "EXPECT_DOUBLE_EQ(" #expected ", " #actual ")" )
/// C stringek (const char *) azonosságát tesztelő makró
#define EXPECT_STREQ(expected, actual) gtest_lite::EXPECTSTR(expected, actual, gtest_lite::eqstr, __FILE__, __LINE__, "EXPECT_STREQ(" #expected ", " #actual ")" )
/// C stringek (const char *) eltéréset tesztelő makró
#define EXPECT_STRNE(expected, actual) gtest_lite::EXPECTSTR(expected, actual, gtest_lite::nestr, __FILE__, __LINE__, "EXPECT_STRNE(" #expected ", " #actual ")", "etalon" )
/// Kivételt várunk
#define EXPECT_THROW(statement, exception_type) try { gtest_lite::test.tmp = false; statement; } \
catch (exception_type) { gtest_lite::test.tmp = true; } \
catch (...) { } \
EXPECTTHROW(statement, "kivetelt dob.", "nem dobott '"#exception_type"' kivetelt.")
/// Kivételt várunk
#define EXPECT_ANY_THROW(statement) try { gtest_lite::test.tmp = false; statement; } \
catch (...) { gtest_lite::test.tmp = true; } \
EXPECTTHROW(statement, "kivetelt dob.", "nem dobott kivetelt.")
/// Nem várunk kivételt
#define EXPECT_NO_THROW(statement) try { gtest_lite::test.tmp = true; statement; } \
catch (...) { gtest_lite::test.tmp = false; }\
EXPECTTHROW(statement, "nem dob kivetelt.", "kivetelt dobott.")
/// Nem várunk kivételt gtest kompatibilitás miatt
#define ASSERT_NO_THROW(statement) try { gtest_lite::test.tmp = true; statement; } \
catch (...) { gtest_lite::test.tmp = false; }\
EXPECTTHROW(statement, "nem dob kivetelt.", "kivetelt dobott.")
/// Kivételt várunk és továbbdobjuk -- ilyen nincs a gtest-ben
#define EXPECT_THROW_THROW(statement, exception_type) try { gtest_lite::test.tmp = false; statement; } \
catch (exception_type) { gtest_lite::test.tmp = true; throw; } \
EXPECTTHROW(statement, "kivetelt dob.", "nem dobott '"#exception_type"' kivetelt.")
/// Segédmakró egy adattag, vagy tagfüggvény létezésének tesztelésére futási időben
/// Ötlet:
/// https://cpptalk.wordpress.com/2009/09/12/substitution-failure-is-not-an-error-2
/// Használat:
/// CREATE_Has_(size)
/// ... if (Has_size<std::string>::member)...
#define CREATE_Has_(X) \
template<typename T> struct _Has_##X { \
struct Fallback { int X; }; \
struct Derived : T, Fallback {}; \
template<typename C, C> struct ChT; \
template<typename D> static char (&f(ChT<int Fallback::*, &D::X>*))[1]; \
template<typename D> static char (&f(...))[2]; \
static bool const member = sizeof(f<Derived>(0)) == 2; \
};
/// Segédfüggvény egy publikus adattag, vagy tagfüggvény létezésének tesztelésére
/// fordítási időben
inline void hasMember(...) {}
/// Segédsablon típuskonverzió futás közbeni ellenőrzésere
template <typename F, typename T>
struct _Is_Types {
template<typename D> static char (&f(D*))[1];
template<typename D> static char (&f(...))[2];
static bool const convertable = sizeof(f<T>(F())) == 1;
};
/// -----------------------------------
/// Belső megvalósításhoz tartozó makrók, és osztályok.
/// Nem célszerű közvetlenül használni, vagy módosítani
/// -----------------------------------
/// EXPECTTHROW: kivételkezelés
#define EXPECTTHROW(statement, exp, act) gtest_lite::test.expect(gtest_lite::test.tmp, __FILE__, __LINE__, #statement) \
<< "** Az utasitas " << (act) \
<< "\n** Azt vartuk, hogy " << (exp) << std::endl
#ifdef CPORTA
#define GTINIT(is) \
int magic; \
is >> magic;
#else
#define GTINIT(IS)
#endif // CPORTA
#ifdef CPORTA
#define GTEND(os) \
os << magic << (gtest_lite::test.fail() ? " NO" : " OK?") << std::endl;
#else
#define GTEND(os)
#endif // CPORTA
/// gtest_lite: a keretrendszer függvényinek és objektumainak névtere
namespace gtest_lite {
/// Tesztek állapotát tároló osztály.
/// Egyetlen egy statikus példány keletkezik, aminek a
/// destruktora a futás végén hívódik meg.
struct Test {
int sum; ///< tesztek számlálója
int failed; ///< hibás tesztek
int ablocks; ///< allokált blokkok száma
bool status; ///< éppen futó teszt státusza
bool tmp; ///< temp a kivételkezeléshez;
std::string name; ///< éppen futó teszt neve
std::fstream null; ///< nyelő, ha nem kell kiírni semmit
static Test& getTest() {
static Test instance;///< egyedüli (singleton) példány
return instance;
}
private: /// singleton minta miatt
Test() :sum(0), failed(0), status(false), null("/dev/null") {}
Test(const Test&);
void operator=(const Test&);
public:
/// Teszt kezdete
void begin(const char *n) {
name = n; status = true;
#ifdef MEMTRACE
ablocks = memtrace::allocated_blocks();
#endif
#ifndef CPORTA
std::cerr << "\n---> " << name << std::endl;
#endif // CPORTA
++sum;
}
/// Teszt vége
std::ostream& end(bool memchk = false) {
#ifdef MEMTRACE
if (memchk && ablocks != memtrace::allocated_blocks()) {
status = false;
return std::cerr << "** Lehet, hogy nem szabaditott fel minden memoriat! **" << std::endl;
}
#endif
#ifdef CPORTA
if (!status)
#endif // CPORTA
std::cerr << (status ? " SIKERES" : "** HIBAS ****") << "\t" << name << " <---" << std::endl;
if (!status)
return std::cerr;
else
return null;
}
bool fail() { return failed; }
/// Eredményt adminisztráló tagfüggvény True a jó eset.
std::ostream& expect(bool st, const char *file, int line, const char *expr, bool pr = false) {
if (!st) {
++failed;
status = false;
}
if (!st || pr) {
std::string str(file);
size_t i = str.rfind("\\");
if (i == std::string::npos) i = str.rfind("/");
if (i == std::string::npos) i = 0; else i++;
return std::cerr << "\n**** " << &file[i] << "(" << line << "): " << expr << " ****" << std::endl;
}
return null;
}
/// Destruktor
~Test() {
#ifdef CPORTA
if (failed)
#endif // CPORTA
std::cerr << "\n==== TESZT VEGE ==== HIBAS/OSSZES: " << failed << "/" << sum << std::endl;
}
};
/// A statikus referencia minden fordítási egységben keletkezik, de
/// mindegyik egyetlen példányra fog hivatkozni a singleton minta miatt
static Test& test = Test::getTest();
/// általános sablon a várt értékhez.
template <typename T1, typename T2>
std::ostream& EXPECT_(T1 exp, T2 act, bool (*pred)(T1, T2), const char *file, int line,
const char *expr, const char *lhs = "elvart", const char *rhs = "aktual") {
return test.expect(pred(exp, act), file, line, expr)
<< "** " << lhs << ": " << std::boolalpha << exp
<< "\n** " << rhs << ": " << std::boolalpha << act << std::endl;
}
/// pointerre specializált sablon a várt értékhez.
template <typename T1, typename T2>
std::ostream& EXPECT_(T1* exp, T2* act, bool (*pred)(T1*, T2*), const char *file, int line,
const char *expr, const char *lhs = "elvart", const char *rhs = "aktual") {
return test.expect(pred(exp, act), file, line, expr)
<< "** " << lhs << ": " << (void*) exp
<< "\n** " << rhs << ": " << (void*) act << std::endl;
}
#if __cplusplus >= 201103L
/// nullptr-re specializált sablon a várt értékhez.
template <typename T1>
std::ostream& EXPECT_(T1* exp, std::nullptr_t act, bool (*pred)(T1*, std::nullptr_t), const char *file, int line,
const char *expr, const char *lhs = "elvart", const char *rhs = "aktual") {
return test.expect(pred(exp, act), file, line, expr)
<< "** " << lhs << ": " << (void*) exp
<< "\n** " << rhs << ": " << (void*) act << std::endl;
}
#endif
/// stringek összehasonlításához.
/// azért nem spec. mert a sima EQ-ra másként kell működnie.
inline
std::ostream& EXPECTSTR(const char *exp, const char *act, bool (*pred)(const char*, const char*), const char *file, int line,
const char *expr, const char *lhs = "elvart", const char *rhs = "aktual") {
return test.expect(pred(exp, act), file, line, expr)
<< "** " << lhs << ": " << (exp == NULL ? "NULL pointer" : std::string("\"") + exp + std::string("\""))
<< "\n** " << rhs << ": " << (act == NULL ? "NULL pointer" : std::string("\"") + act + std::string("\"")) << std::endl;
}
/// segéd sablonok a relációkhoz.
/// azért nem STL (algorithm), mert csak a függvény lehet, hogy menjen a deduckció
template <typename T1, typename T2>
bool eq(T1 a, T2 b) { return a == b; }
inline
bool eqstr(const char *a, const char *b) {
if (a != NULL && b != NULL)
return strcmp(a, b) == 0;
return false;
}
template <typename T1, typename T2>
bool ne(T1 a, T2 b) { return a != b; }
inline
bool nestr(const char *a, const char *b) {
if (a != NULL && b != NULL)
return strcmp(a, b) != 0;
return false;
}
template <typename T1, typename T2>
bool le(T1 a, T2 b) { return a <= b; }
template <typename T1, typename T2>
bool lt(T1 a, T2 b) { return a < b; }
template <typename T1, typename T2>
bool ge(T1 a, T2 b) { return a >= b; }
template <typename T1, typename T2>
bool gt(T1 a, T2 b) { return a > b; }
/// Segédsablon valós számok összehasonlításához
/// Nem bombabiztos, de nekünk most jó lesz
/// Elméleti hátér:
/// http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
template <typename T>
bool almostEQ(T a, T b) {
// eps: ha a relatív, vagy abszolút hiba ettől kisebb, akkor elfogadjuk
T eps = 10 * std::numeric_limits<T>::epsilon(); // 10-szer a legkisebb érték
if (a == b) return true;
if (fabs(a - b) < eps)
return true;
double aa = fabs(a);
double ba = fabs(b);
if (aa < ba) {
aa = ba;
ba = fabs(a);
}
return (aa - ba) < aa * eps;
}
} // namespace gtest_lite
#endif // GTEST_LITE_H
/**
* \file kassza.cpp
*
* Kassza osztály tagfüggvényeinek megvalósítása (definíciója)
*/
#include <iostream>
#include <iomanip>
#include "memtrace.h"
#include "kassza.h"
using std::setw;
/// Eladás.
/// @param mennyi - eladott mennyiség
/// @param mit - referencia az eladott árura (Kompatibilitás kihasználása)
/// @param mikor - eladás dátuma
/// @return kivételt dob, ha nem fér be
void Kassza::elad(double mennyi, const Aru& mit, const Datum& mikor) {
tetelek[db++] = Tetel(mennyi, &mit, mikor);
}
/// Kassza tartalmának kilistázása
/// @param os - output stream
void Kassza::list(std::ostream& os) const {
for (size_t i = 0; i < db; i++) {
os << tetelek[i].datum << ": "
<< setw(4) << tetelek[i].mennyiseg * tetelek[i].aru->getAr() << "Ft" << " -- "
<< tetelek[i].mennyiseg << " "
<< tetelek[i].aru->getEgys() << " "
<< *tetelek[i].aru << std::endl;
}
}
/// Eladások listázása egy adott napon
/// @param os - output stream
/// @param mikor - melyik nap
void Kassza::list(std::ostream& os, const Datum& mikor) const {
}
/// Eladások összege egy adott napra
/// @param mikor - melyik nap
/// @return - összeg
double Kassza::napiOsszeg(const Datum& mikor) {
return 0;
}
#ifndef KASSZA_H
#define KASSZA_H
/**
* \file kassza.h
*
* Kassza osztály deklarációja és inline függvényei
*/
#include "aru.h"
#include "datum.h"
/// Tetel publikus osztály: Kassza ilyen tételeket tárol.
/// Kassza belső osztálya is lehetne, de talán így jobban olvasható
struct Tetel {
double mennyiseg; ///< eladott áru mennyisége
const Aru* aru; ///< eladott áru. POINTER az ős osztályra!
Datum datum; ///< eladás dátuma
Tetel() :mennyiseg(0), aru(NULL) {}
Tetel(double mennyi, const Aru* aru, const Datum& d
)
:mennyiseg(mennyi), aru(aru), datum(d) { }
};
/// Kassza osztály.
/// Fix darabszámú Tetel tárolására képes.
/// Ha betelik, const char* kivételt dob
class Kassza {
size_t db; ///< tarolt darabszám
static const size_t maxdb = 20; ///< méret
Tetel tetelek[maxdb]; /// taroló. Tetel-eket tárol
public:
/// Üres kassza
Kassza() :db(0) {}
/// Eladás.
/// @param mennyi - eladott mennyiség
/// @param mit - referencia az eladott árura (Kompatibilitás kihasználása)
/// @param mikor - eladás dátuma
/// @return kivételt dob, ha nem fér be
void elad(double mennyi, const Aru& mit, const Datum& mikor = Datum());
/// Kassza tartalmának kilistázása
/// @param os - output stream
void list(std::ostream& os) const;
/// Eladások listázása egy adott napon
/// @param os - output stream
/// @param mikor - melyik nap
void list(std::ostream& os, const Datum& mikor) const;
/// Eladások összege egy adott napra
/// @param mikor - melyik nap
/// @return - összeg
double napiOsszeg(const Datum& mikor = Datum());
};
#endif // KASSZA_H
/*********************************
Memoriaszivargas-detektor
Keszitette: Peregi Tamas, BME IIT, 2011
petamas@iit.bme.hu
Kanari: Szeberenyi Imre, 2013.
VS 2012: Szeberényi Imre, 2015.,
mem_dump: 2016.
meset felszabaditaskor: 2018.
typo: 2019.
*********************************/
/*definialni kell, ha nem paracssorbol allitjuk be (-DMEMTRACE) */
/*#define MEMTRACE */
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS 1
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#ifdef MEMTRACE
#define FROM_MEMTRACE_CPP
#include "memtrace.h"
#define FMALLOC 0
#define FCALLOC 1
#define FREALLOC 2
#define FFREE 3
#define FNEW 4
#define FDELETE 5
#define FNEWARR 6
#define FDELETEARR 7
#define COMP(a,d) (((a)<=3 && (d)<=3) || ((d)==(a)+1))
#define PU(p) ((char*)p+CANARY_LEN) // mem pointerbol user poi
#define P(pu) ((char*)pu-CANARY_LEN) // user pointerbol mem poi
#define XSTR(s) STR(s)
#define STR(s) #s
/*******************************************************************/
/* Segedfuggvenyek es egyebek */
/*******************************************************************/
START_NAMESPACE
static FILE *fperror;
#ifdef MEMTRACE_TO_MEMORY
static const unsigned int CANARY_LEN = 64;
#else
static const unsigned int CANARY_LEN = 0;
#endif
static const unsigned char canary_byte1 = 'k';
static const unsigned char canary_byte2 = 'K';
static unsigned char random_byte;
typedef enum {FALSE,TRUE} BOOL;
static const char * pretty[] = {"malloc(", "calloc(", "realloc(", "free(",
"new", "delete", "new[]", "delete[]"};
static const char * basename(const char * s) {
const char *s1,*s2;
s1 = strrchr(s,'/');
if(s1==NULL) s1 = s; else s1++;
s2 = strrchr(s1, '\\');
if(s2==NULL) s2 = s1; else s2++;
return s2;
}
static char *StrCpy(char ** to, const char * from) {
if(from == NULL) {
*to = NULL;
} else {
*to = (char*)malloc(strlen(from)+1);
if(*to) strcpy(*to, from);
}
return *to;
}
static void *canary_malloc(size_t size, unsigned char data) {
char *p = (char *)malloc(size+2*CANARY_LEN);
if (p) {
memset(p, canary_byte1, CANARY_LEN);
memset(p+CANARY_LEN, data, size);
memset(p+CANARY_LEN+size, canary_byte2, CANARY_LEN);
}
return p;
}
static int chk_canary(void *p, size_t size) {
unsigned char *pc = (unsigned char*)p;
unsigned int i;
for (i = 0; i < CANARY_LEN; i++)
if (pc[i] != canary_byte1)
return -1;
pc += CANARY_LEN+size;
for (i = 0; i < CANARY_LEN; i++)
if (pc[i] != canary_byte2)
return 1;
return 0;
}
typedef struct {
int f; /* allocator func */
int line;
char * par_txt;
char * file;
} call_t;
static call_t pack(int f, const char * par_txt, int line, const char * file) {
call_t ret;
ret.f = f;
ret.line = line;
StrCpy(&ret.par_txt, par_txt);
StrCpy(&ret.file, file);
return ret;
}
static void print_call(const char * msg, call_t call) {
if(msg) fprintf(fperror, "%s", msg);
fprintf(fperror, "%s", pretty[call.f]);
fprintf(fperror, "%s", call.par_txt ? call.par_txt : "?");
if (call.f <= 3) fprintf(fperror, ")");
fprintf(fperror," @ %s:", call.file ? basename(call.file) : "?");
fprintf(fperror,"%d\n",call.line ? call.line : 0);
}
/* memoriateruletet dump */
static void dump_memory(void const *mem, size_t size, size_t can_len, FILE* fp) {
unsigned char const *m=(unsigned char const *) mem;
unsigned int s, o;
if (can_len > 0)
fprintf(fp, "Dump (addr: %p kanari hossz: %d):\n", m+can_len, (int)can_len);
else
fprintf(fp, "Dump: (addr: %p) \n", m);
size += 2*can_len;
for (s = 0; s < (size+15)/16; s++) {
fprintf(fp, "%04x:%c ", s*16, s*16 < can_len || s*16 >= size-can_len ? ' ' : '*');
for (o = 0; o < 16; o++) {
if (o == 8) fprintf(fp, " ");
if (s*16+o < size)
fprintf(fp, "%02x ", m[s*16+o]);
else
fprintf(fp, " ");
}
fprintf(fp, " ");
for (o = 0; o < 16; o++) {
if (s*16+o < size)
fprintf(fp, "%c", isprint(m[s*16+o]) ? m[s*16+o] : '.');
else
fprintf(fp, " ");
}
fprintf(fp, "\n");
}
}
void mem_dump(void const *mem, size_t size, FILE* fp) {
dump_memory(mem, size, 0, fp);
}
static BOOL dying;
static void die(const char * msg, void * p, size_t size, call_t * a, call_t * d) {
#ifdef MEMTRACE_ERRFILE
fperror = fopen(XSTR(MEMTRACE_ERRFILE), "w");
#endif
fprintf(fperror,"%s\n",msg);
if (p) {
fprintf(fperror, "\tPointer:\t%p", PU(p));
if (size) fprintf(fperror," (%d byte)", (int)size);
fprintf(fperror,"\n");
}
if (a) print_call("\tFoglalas:\t", *a);
if (d) print_call("\tFelszabaditas:\t", *d);
if (p) dump_memory(p, size, CANARY_LEN, fperror);
dying = TRUE;
exit(120);
}
static void initialize();
END_NAMESPACE
/*******************************************************************/
/* MEMTRACE_TO_MEMORY */
/*******************************************************************/
#ifdef MEMTRACE_TO_MEMORY
START_NAMESPACE
typedef struct _registry_item {
void * p; /* mem pointer*/
size_t size; /* size*/
call_t call;
struct _registry_item * next;
} registry_item;
static registry_item registry; /*sentinel*/
static void print_registry_item(registry_item * p) {
if (p) {
print_registry_item(p->next);
fprintf(fperror, "\t%p%5d byte ",p->p, (int)p->size);
print_call(NULL, p->call);
if(p->call.par_txt) free(p->call.par_txt);
if(p->call.file) free(p->call.file);
free(p);
}
}
/* ha nincs hiba, akkor 0-val tér vissza */
int mem_check(void) {
initialize();
if(dying) return 2; /* címzési hiba */
if(registry.next) {
/*szivarog*/
#ifdef MEMTRACE_ERRFILE
fperror = fopen(XSTR(MEMTRACE_ERRFILE), "w");
#endif
fprintf(fperror, "Szivargas:\n");
print_registry_item(registry.next);
registry.next = NULL;
return 1; /* memória fogyás */
}
return 0;
}
END_NAMESPACE
#endif/*MEMTRACE_TO_MEMORY*/
/*******************************************************************/
/* MEMTRACE_TO_FILE */
/*******************************************************************/
#ifdef MEMTRACE_TO_FILE
START_NAMESPACE
static FILE * trace_file;
END_NAMESPACE
#endif
/*******************************************************************/
/* register/unregister */
/*******************************************************************/
START_NAMESPACE
static int allocated_blks;
int allocated_blocks() { return allocated_blks; }
static BOOL register_memory(void * p, size_t size, call_t call) {
initialize();
allocated_blks++;
#ifdef MEMTRACE_TO_FILE
fprintf(trace_file, "%p\t%d\t%s%s", PU(p), (int)size, pretty[call.f], call.par_txt ? call.par_txt : "?");
if (call.f <= 3) fprintf(trace_file, ")");
fprintf(trace_file, "\t%d\t%s\n", call.line, call.file ? call.file : "?");
fflush(trace_file);
#endif
#ifdef MEMTRACE_TO_MEMORY
{/*C-blokk*/
registry_item * n = (registry_item*)malloc(sizeof(registry_item));
if(n==NULL) return FALSE;
n->p = p;
n->size = size;
n->call = call;
n->next = registry.next;
registry.next = n;
}/*C-blokk*/
#endif
return TRUE;
}
#ifdef MEMTRACE_TO_MEMORY
static registry_item *find_registry_item(void * p) {
registry_item *n = &registry;
for(; n->next && n->next->p != p ; n=n->next);
return n;
}
#endif
static void unregister_memory(void * p, call_t call) {
initialize();
#ifdef MEMTRACE_TO_FILE
fprintf(trace_file, "%p\t%d\t%s%s", PU(p), -1, pretty[call.f], call.par_txt ? call.par_txt : "?");
if (call.f <= 3) fprintf(trace_file, ")");
fprintf(trace_file,"\t%d\t%s\n",call.line, call.file ? call.file : "?");
fflush(trace_file);
#endif
#ifdef MEMTRACE_TO_MEMORY
{ /*C-blokk*/
registry_item * n = find_registry_item(p);
if(n->next) {
allocated_blks--;
registry_item * r = n->next;
n->next = r->next;
if(COMP(r->call.f,call.f)) {
int chk = chk_canary(r->p, r->size);
if (chk < 0)
die("Blokk elott serult a memoria:", r->p,r->size,&r->call,&call);
if (chk > 0)
die("Blokk utan serult a memoria", r->p,r->size,&r->call,&call);
/*rendben van minden*/
if(call.par_txt) free(call.par_txt);
if(r->call.par_txt) free(r->call.par_txt);
if(call.file) free(call.file);
if(r->call.file) free(r->call.file);
memset(PU(r->p), 'f', r->size);
PU(r->p)[r->size-1] = 0;
free(r);
} else {
/*hibas felszabaditas*/
die("Hibas felszabaditas:",r->p,r->size,&r->call,&call);
}
} else {
die("Nem letezo, vagy mar felszabaditott adat felszabaditasa:", p, 0,NULL,&call);
}
} /*C-blokk*/
#endif
}
END_NAMESPACE
/*******************************************************************/
/* C-stílusú memóriakezelés */
/*******************************************************************/
#ifdef MEMTRACE_C
START_NAMESPACE
void * traced_malloc(size_t size, const char * par_txt, int line, const char * file) {
void * p;
initialize();
p = canary_malloc(size, random_byte);
if (p) {
if(!register_memory(p,size,pack(FMALLOC,par_txt,line,file))) {
free(p);
return NULL;
}
return PU(p);
}
return NULL;
}
void * traced_calloc(size_t count, size_t size, const char * par_txt, int line, const char * file) {
void * p;
initialize();
size *= count;
p = canary_malloc(size, 0);
if(p) {
if(!register_memory(p,size,pack(FCALLOC,par_txt,line,file))) {
free(p);
return NULL;
}
return PU(p);
}
return NULL;
}
void traced_free(void * pu, const char * par_txt, int line, const char * file) {
initialize();
if(pu) {
unregister_memory(P(pu), pack(FFREE,par_txt,line,file));
free(P(pu));
} else {
/*free(NULL) eset*/
#ifdef MEMTRACE_TO_FILE
fprintf(trace_file,"%s\t%d\t%10s\t","NULL",-1,pretty[FFREE]);
fprintf(trace_file,"%d\t%s\n",line,file ? file : "?");
fflush(trace_file);
#endif
#ifndef ALLOW_FREE_NULL
{/*C-blokk*/
call_t call;
call = pack(FFREE,par_txt,line,file);
die("free(NULL) hivasa:",NULL,0,NULL,&call);
}/*C-blokk*/
#endif
}
}
void * traced_realloc(void * old, size_t size, const char * par_txt, int line, const char * file) {
void * p;
size_t oldsize = 0;
registry_item * n;
initialize();
#ifdef MEMTRACE_TO_MEMORY
n = find_registry_item(P(old));
if (n) oldsize = n->next->size;
p = canary_malloc(size, random_byte);
#else
p = realloc(old, size);
#endif
if (p) {
/*Ha sikerult a foglalas, regisztraljuk*/
register_memory(p,size,pack(FREALLOC, par_txt, line,file));
if (old) {
#ifdef MEMTRACE_TO_MEMORY
int cpsize = 2*CANARY_LEN;
if (oldsize < size) cpsize += oldsize;
else cpsize += size;
memcpy(p, P(old), cpsize);
#endif
unregister_memory(P(old), pack(FREALLOC, par_txt, line, file));
#ifdef MEMTRACE_TO_MEMORY
free P(old);
#endif
}
return PU(p);
} else {
return NULL;
}
}
END_NAMESPACE
#endif/*MEMTRACE_C*/
/*******************************************************************/
/* C++-stílusú memóriakezelés */
/*******************************************************************/
#ifdef MEMTRACE_CPP
START_NAMESPACE
std::new_handler _new_handler;
void _set_new_handler(std::new_handler h) {
initialize();
_new_handler = h;
}
static call_t delete_call;
static BOOL delete_called;
void set_delete_call(int line, const char * file) {
initialize();
delete_call=pack(0,"",line,file); /*func értéke lényegtelen, majd felülírjuk*/
delete_called = TRUE;
}
void * traced_new(size_t size, int line, const char * file, int func) {
initialize();
for (;;) {
void * p = canary_malloc(size, random_byte);
if(p) {
register_memory(p,size,pack(func,"",line,file));
return PU(p);
}
if (_new_handler == 0)
throw std::bad_alloc();
_new_handler();
}
}
void traced_delete(void * pu, int func) {
initialize();
if(pu) {
/*kiolvasom call-t, ha van*/
memtrace::call_t call = delete_called ? (delete_call.f=func, delete_call) : pack(func,NULL,0,NULL);
memtrace::unregister_memory(P(pu),call);
free(P(pu));
}
delete_called=FALSE;
}
END_NAMESPACE
void * operator new(size_t size, int line, const char * file) THROW_BADALLOC {
return memtrace::traced_new(size,line,file,FNEW);
}
void * operator new[](size_t size, int line, const char * file) THROW_BADALLOC {
return memtrace::traced_new(size,line,file,FNEWARR);
}
void * operator new(size_t size) THROW_BADALLOC {
return memtrace::traced_new(size,0,NULL,FNEW);
}
void * operator new[](size_t size) THROW_BADALLOC {
return memtrace::traced_new(size,0,NULL,FNEWARR);
}
void operator delete(void * p) THROW_NOTHING {
memtrace::traced_delete(p,FDELETE);
}
void operator delete[](void * p) THROW_NOTHING {
memtrace::traced_delete(p,FDELETEARR);
}
/* Visual C++ 2012 miatt kell, mert háklis, hogy nincs megfelelő delete, bár senki sem használja */
void operator delete(void * p, int, const char *) THROW_NOTHING {
memtrace::traced_delete(p,FDELETE);
}
void operator delete[](void * p, int, const char *) THROW_NOTHING {
memtrace::traced_delete(p,FDELETE);
}
#endif/*MEMTRACE_CPP*/
/*******************************************************************/
/* initialize */
/*******************************************************************/
START_NAMESPACE
static void initialize() {
static BOOL first = TRUE;
if(first) {
fperror = stderr;
random_byte = (unsigned char)time(NULL);
first = FALSE;
dying = FALSE;
#ifdef MEMTRACE_TO_MEMORY
registry.next = NULL;
#if !defined(USE_ATEXIT_OBJECT) && defined(MEMTRACE_AUTO)
atexit((void(*)(void))mem_check);
#endif
#endif
#ifdef MEMTRACE_TO_FILE
trace_file = fopen("memtrace.dump","w");
#endif
#ifdef MEMTRACE_CPP
_new_handler = NULL;
delete_called = FALSE;
delete_call = pack(0,NULL,0,NULL);
#endif
}
}
#if defined(MEMTRACE_TO_MEMORY) && defined(USE_ATEXIT_OBJECT)
int atexit_class::counter = 0;
int atexit_class::err = 0;
#endif
END_NAMESPACE
#endif
/*********************************
Memoriaszivargas-detektor
Keszitette: Peregi Tamas, BME IIT, 2011
petamas@iit.bme.hu
Kanari: Szeberenyi Imre, 2013.,
VS 2012: Szeberényi Imre, 2015.,
mem_dump: 2016.
inclue-ok: 2017., 2018. 2019.
*********************************/
#ifndef MEMTRACE_H
#define MEMTRACE_H
#if defined(MEMTRACE)
/*ha definiálva van, akkor a hibakat ebbe a fajlba írja, egyébkent stderr-re*/
/*#define MEMTRACE_ERRFILE MEMTRACE.ERR*/
/*ha definialva van, akkor futas kozben lancolt listat epit. Javasolt a hasznalata*/
#define MEMTRACE_TO_MEMORY
/*ha definialva van, akkor futas kozben fajlba irja a foglalasokat*/
/*ekkor nincs ellenorzes, csak naplozas*/
/*#define MEMTRACE_TO_FILE*/
/*ha definialva van, akkor a megallaskor automatikus riport keszul */
#define MEMTRACE_AUTO
/*ha definialva van, akkor malloc()/calloc()/realloc()/free() kovetve lesz*/
#define MEMTRACE_C
#ifdef MEMTRACE_C
/*ha definialva van, akkor free(NULL) nem okoz hibat*/
#define ALLOW_FREE_NULL
#endif
#ifdef __cplusplus
/*ha definialva van, akkor new/delete/new[]/delete[] kovetve lesz*/
#define MEMTRACE_CPP
#endif
#if defined(__cplusplus) && defined(MEMTRACE_TO_MEMORY)
/*ha definialva van, akkor atexit helyett objektumot hasznal*/
/*ajanlott bekapcsolni*/
#define USE_ATEXIT_OBJECT
#endif
/******************************************/
/* INNEN NE MODOSITSD */
/******************************************/
#ifdef NO_MEMTRACE_TO_FILE
#undef MEMTRACE_TO_FILE
#endif
#ifdef NO_MEMTRACE_TO_MEMORY
#undef MEMTRACE_TO_MEMORY
#endif
#ifndef MEMTRACE_AUTO
#undef USE_ATEXIT_OBJECT
#endif
#ifdef __cplusplus
#define START_NAMESPACE namespace memtrace {
#define END_NAMESPACE } /*namespace*/
#define TRACEC(func) memtrace::func
#include <new>
#else
#define START_NAMESPACE
#define END_NAMESPACE
#define TRACEC(func) func
#endif
// THROW deklaráció változatai
#if defined(_MSC_VER)
// VS rosszul kezeli az __cplusplus makrot
#if _MSC_VER < 1900
// * nem biztos, hogy jó így *
#define THROW_BADALLOC
#define THROW_NOTHING
#else
// C++11 vagy újabb
#define THROW_BADALLOC noexcept(false)
#define THROW_NOTHING noexcept
#endif
#else
#if __cplusplus < 201103L
// C++2003 vagy régebbi
#define THROW_BADALLOC throw (std::bad_alloc)
#define THROW_NOTHING throw ()
#else
// C++11 vagy újabb
#define THROW_BADALLOC noexcept(false)
#define THROW_NOTHING noexcept
#endif
#endif
START_NAMESPACE
int allocated_blocks();
END_NAMESPACE
#if defined(MEMTRACE_TO_MEMORY)
START_NAMESPACE
int mem_check(void);
END_NAMESPACE
#endif
#if defined(MEMTRACE_TO_MEMORY) && defined(USE_ATEXIT_OBJECT)
#include <cstdio>
START_NAMESPACE
class atexit_class {
private:
static int counter;
static int err;
public:
atexit_class() {
#if defined(CPORTA) && !defined(CPORTA_NOSETBUF)
if (counter == 0) {
setbuf(stdout, 0);
setbuf(stderr, 0);
}
#endif
counter++;
}
int check() {
if(--counter == 0)
err = mem_check();
return err;
}
~atexit_class() {
check();
}
};
static atexit_class atexit_obj;
END_NAMESPACE
#endif/*MEMTRACE_TO_MEMORY && USE_ATEXIT_OBJECT*/
/*Innentol csak a "normal" include eseten kell, kulonben osszezavarja a mukodest*/
#ifndef FROM_MEMTRACE_CPP
#include <stdlib.h>
#ifdef __cplusplus
#include <iostream>
/* ide gyűjtjük a nemtrace-vel összeakadó headereket, hogy előbb legyenek */
#include <fstream> // VS 2013 headerjében van deleted definició
#include <sstream>
#include <vector>
#include <list>
#include <map>
#include <algorithm>
#include <functional>
#endif
#ifdef MEMTRACE_CPP
namespace std {
typedef void (*new_handler)();
}
#endif
#ifdef MEMTRACE_C
START_NAMESPACE
#undef malloc
#define malloc(size) TRACEC(traced_malloc)(size,#size,__LINE__,__FILE__)
void * traced_malloc(size_t size, const char *size_txt, int line, const char * file);
#undef calloc
#define calloc(count,size) TRACEC(traced_calloc)(count, size, #count","#size,__LINE__,__FILE__)
void * traced_calloc(size_t count, size_t size, const char *size_txt, int line, const char * file);
#undef free
#define free(p) TRACEC(traced_free)(p, #p,__LINE__,__FILE__)
void traced_free(void * p, const char *size_txt, int line, const char * file);
#undef realloc
#define realloc(old,size) TRACEC(traced_realloc)(old,size,#size,__LINE__,__FILE__)
void * traced_realloc(void * old, size_t size, const char *size_txt, int line, const char * file);
void mem_dump(void const *mem, size_t size, FILE* fp);
END_NAMESPACE
#endif/*MEMTRACE_C*/
#ifdef MEMTRACE_CPP
START_NAMESPACE
#undef set_new_handler
#define set_new_handler(f) TRACEC(_set_new_handler)(f)
void _set_new_handler(std::new_handler h);
void set_delete_call(int line, const char * file);
END_NAMESPACE
void * operator new(size_t size, int line, const char * file) THROW_BADALLOC;
void * operator new[](size_t size, int line, const char * file) THROW_BADALLOC;
void * operator new(size_t size) THROW_BADALLOC;
void * operator new[](size_t size) THROW_BADALLOC;
void operator delete(void * p) THROW_NOTHING;
void operator delete[](void * p) THROW_NOTHING;
/* Visual C++ 2012 miatt kell, mert háklis, hogy nincs megfelelő delete, bár senki sem használja */
void operator delete(void *p, int, const char *) THROW_NOTHING;
void operator delete[](void *p, int, const char *) THROW_NOTHING;
#define new new(__LINE__, __FILE__)
#define delete memtrace::set_delete_call(__LINE__, __FILE__),delete
#ifdef CPORTA
#define system(...) // system(__VA_ARGS__)
#endif
#endif /*MEMTRACE_CPP*/
#endif /*FROM_MEMTRACE_CPP*/
#endif /*MEMCHECK*/
#endif /*MEMTRACE_H*/
#ifndef TEJ_H
#define TEJ_H
/**
* \file tej.h
*
* Tej osztály deklarációja és inline függvényei
*/
#include "aru.h"
/// Tej osztály.
/// spec attribútuma a tej fajtája, és szírtartalma
class Tej :public Aru {
double zsir; ///< tej zsírtartalma %%)
String spec; ///< tej fajtája
public:
/// Konstruktor beállítja az attribútumokat (ősosztályét is)
/// @param zsir - tej zsírtartalma
/// @param ar - tej egységára
/// @param spec - tej fajtája
Tej(double zsir, double ar, const char *spec = "")
:Aru("Tej", "liter", ar), zsir(zsir), spec(spec) {}
/// Attribútumok kiírása egy stream-re
/// @param os - output stream referencia
/// @return output stream referencia
std::ostream& print(std::ostream& os) const {
return os << megnevezes << " "
<< zsir << "% " << spec << "; "
<< ar << "Ft/" << egyseg;
}
};
#endif // TEJ_H
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment