diff --git a/hazi/adatfajl.txt b/hazi/adatfajl.txt
new file mode 100644
index 0000000000000000000000000000000000000000..092fecdacdaebbb5e75988e0ab54d06dfacea6c6
--- /dev/null
+++ b/hazi/adatfajl.txt
@@ -0,0 +1,39 @@
+2
+3
+4
+5
+1
+asd asd
+asd
+asd
+asd asd asd
+asd
+1
+Kiss Bela
+06301515151
+beci
+Kukutyim Virag 24
+06208885969
+1
+Kiraly Istvan
+06501424151
+pityu
+Pest Kerekes 999
+06501414252
+2
+4
+5
+3
+1
+3
+1
+3
+0
+3
+2
+3
+5
+6
+3
+-2
+
diff --git a/hazi/adatok.hpp b/hazi/adatok.hpp
index 385eed2d2a9c53d1f8fe67ce4acd02c075f1a0d0..67cdc59efde6aa4459482b2658fab0c77c834baf 100644
--- a/hazi/adatok.hpp
+++ b/hazi/adatok.hpp
@@ -7,22 +7,28 @@
 #include "privatszemely.h"
 #include "publikusszemely.h"
 
-//using std::string;
-
+//Adat class, ami két classt tartalmaz
+//PublikusAdat és PrivatAdatot
 class Adatok  {
+    //A két leszármaztatott osztály
     PublikusAdat pubad;
     PrivatAdat privad;
 public:
+    //Konstruktor
     Adatok(const PublikusAdat& pubad,const PrivatAdat& privad): pubad(pubad), privad(privad){}
 
+    //Copy konstruktor
     Adatok(const Adatok& asd){
         privad = asd.privad;
         pubad = asd.pubad;
     }
 
+    //Destruktor
     ~Adatok(){
     }
 
+    //Egyenlőség operátor
+    //Két adatok típust hasonlít össze
     bool operator==(const Adatok& tbc){
         if (pubad == tbc.pubad && privad == tbc.privad){
             return true;
@@ -30,10 +36,12 @@ public:
         return false;
     }
 
+    //Függvény, ami visszadja a Adatok PrivatAdat tagját
     PrivatAdat& getpriv() {
         return privad;
     }
 
+    //Függvény, ami visszadja a Adatok PublikusAdat tagját
     PublikusAdat& getpubad(){
         return pubad;
     }
diff --git a/hazi/adatok.txt b/hazi/adatok.txt
new file mode 100644
index 0000000000000000000000000000000000000000..25f1d86d009be91cc65c1a7886d1c9b1e914aa99
--- /dev/null
+++ b/hazi/adatok.txt
@@ -0,0 +1,5 @@
+Kiss Bela
+06301111222
+beci
+Pest Virag 24
+06304444555
diff --git a/hazi/asd.zip b/hazi/asd.zip
new file mode 100644
index 0000000000000000000000000000000000000000..77aedb6dca5670b7af6015c9cd28094cb162132b
Binary files /dev/null and b/hazi/asd.zip differ
diff --git a/hazi/bin/Debug/adatok.txt b/hazi/bin/Debug/adatok.txt
new file mode 100644
index 0000000000000000000000000000000000000000..25f1d86d009be91cc65c1a7886d1c9b1e914aa99
--- /dev/null
+++ b/hazi/bin/Debug/adatok.txt
@@ -0,0 +1,5 @@
+Kiss Bela
+06301111222
+beci
+Pest Virag 24
+06304444555
diff --git a/hazi/bin/Debug/hazi b/hazi/bin/Debug/hazi
new file mode 100644
index 0000000000000000000000000000000000000000..bd3d767920d21410a555b43cedcf92e9d12cff57
Binary files /dev/null and b/hazi/bin/Debug/hazi differ
diff --git a/hazi/bin/Debug/hazi.exe b/hazi/bin/Debug/hazi.exe
new file mode 100644
index 0000000000000000000000000000000000000000..77150d5bebbc1ff7ffb38f5c85b79c39ce338619
Binary files /dev/null and b/hazi/bin/Debug/hazi.exe differ
diff --git a/hazi/bin/Debug/vCardAdatok.vcf b/hazi/bin/Debug/vCardAdatok.vcf
new file mode 100644
index 0000000000000000000000000000000000000000..465736ed0bcc6975e6dd8e59812058398190ea94
--- /dev/null
+++ b/hazi/bin/Debug/vCardAdatok.vcf
@@ -0,0 +1,7 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Kiss Bela
+FN:beci
+ADR;TYPE=home:;;Pest Virag 24
+TEL;TYPE=home:06304444555
+TEL;TYPE=work:06301111222
diff --git a/hazi/element.h b/hazi/element.h
index 031c2999025e5d70fb49eff48daab092c3ba019e..44f2f94bea21ab3fb898ab3f8d4cdeeb7c12431f 100644
--- a/hazi/element.h
+++ b/hazi/element.h
@@ -3,18 +3,43 @@
 
 #include <iostream>
 
+//generikus tomb amiben egy láncolt listában
+//tárolva vannak az adatok
 template<class T>
-class Element
-{
+
+//Element class, ebben van tárolva az Adatok
+class Element {
+
 public:
-    //Element* prev;
+    //A következő elemre mutató pointer
     Element* next;
+
+    //Az tartalmazott Adatok tagnak az értéke
+    //az az a PrivatAdat és a PublikusAdat
     T value;
+
+    //Konstruktor, a következő elemet automatikusan
+    //NULL-ra állítja
     Element<T>(const T& val) : value(val) {next = NULL;};
+
+    //Függvény, ami visszaadja a következő
+    //elemre mutató pointert
+    //next pointerrel return-öl
     Element* getNext() { return next; }
+
+    //Függvény ami visszaadja a tárolt adat value-ját
+    //(lásd feljebb)
+    //value-val return-öl
     T getValue() const { return value; }
+
+    //Függvény, ami a next pointert tudja
+    //beállítani a megadott pointerre
     void setNext(Element* ne) { next=ne; }
+
+    //Függvény ami az adott tag értékét tudja állítani
     void setValue(const T& val) { value=val; }
+
+    //Destruktor
     ~Element(){}
 };
 
diff --git a/hazi/hazi.cbp b/hazi/hazi.cbp
new file mode 100644
index 0000000000000000000000000000000000000000..83792047283a6f8d56b7ee1bd2d5f047764986d2
--- /dev/null
+++ b/hazi/hazi.cbp
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+	<FileVersion major="1" minor="6" />
+	<Project>
+		<Option title="hazi" />
+		<Option pch_mode="2" />
+		<Option compiler="gcc" />
+		<Build>
+			<Target title="Debug">
+				<Option output="bin/Debug/hazi" 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/hazi" 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="-Wall" />
+			<Add option="-fexceptions" />
+		</Compiler>
+		<Unit filename="adatok.hpp" />
+		<Unit filename="element.h" />
+		<Unit filename="gtest_lite.h" />
+		<Unit filename="main.cpp" />
+		<Unit filename="memtrace.cpp" />
+		<Unit filename="memtrace.h" />
+		<Unit filename="privatszemely.h" />
+		<Unit filename="publikusszemely.h" />
+		<Unit filename="string5.cpp" />
+		<Unit filename="string5.h" />
+		<Unit filename="victor.h" />
+		<Extensions>
+			<code_completion />
+			<envvars />
+			<debugger />
+		</Extensions>
+	</Project>
+</CodeBlocks_project_file>
diff --git a/hazi/hazi.depend b/hazi/hazi.depend
new file mode 100644
index 0000000000000000000000000000000000000000..13aa2207896811da92d4a6979c1e5fb3dec93431
--- /dev/null
+++ b/hazi/hazi.depend
@@ -0,0 +1,291 @@
+# depslib dependency file v1.0
+1620143988 source:/home/zsombor/C++/hazi/adatok.cpp
+	<iostream>
+
+1620142704 source:/home/zsombor/C++/hazi/privatadat.cpp
+
+1620142721 source:/home/zsombor/C++/hazi/publikusadat.cpp
+
+1620147588 source:d:\users\sandor\downloads\c++\hazi\hazi\adatok.cpp
+	<iostream>
+
+1620146304 source:d:\users\sandor\downloads\c++\hazi\hazi\privatadat.cpp
+
+1620146321 source:d:\users\sandor\downloads\c++\hazi\hazi\publikusadat.cpp
+
+1620229739 source:d:\users\sandor\downloads\c++\hazi\hazi\main.cpp
+	<iostream>
+	"adatok.hpp"
+	"tomb.h"
+	"memtrace.h"
+
+1620201713 source:d:\users\sandor\downloads\c++\hazi\hazi\privatszemely.cpp
+
+1620201749 source:d:\users\sandor\downloads\c++\hazi\hazi\publikusszemely.cpp
+
+1620229163 d:\users\sandor\downloads\c++\hazi\hazi\adatok.hpp
+	<iostream>
+	"tomb.h"
+
+1620229218 d:\users\sandor\downloads\c++\hazi\hazi\tomb.h
+	<iostream>
+	<cstddef>
+
+1617816949 source:d:\users\sandor\downloads\c++\hazi\hazi\memtrace.cpp
+	<stdio.h>
+	<stdlib.h>
+	<string.h>
+	<time.h>
+	<ctype.h>
+	"memtrace.h"
+
+1617816949 d:\users\sandor\downloads\c++\hazi\hazi\memtrace.h
+	<new>
+	<cstdio>
+	<stdlib.h>
+	<iostream>
+	<fstream>
+	<sstream>
+	<vector>
+	<list>
+	<map>
+	<algorithm>
+	<functional>
+	<memory>
+	<iomanip>
+	<locale>
+	<typeinfo>
+	<ostream>
+	<stdexcept>
+	<ctime>
+	<iterator>
+	<regex>
+
+1620386162 source:d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\adatok.cpp
+	<iostream>
+
+1620389061 source:d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\main.cpp
+	<iostream>
+	"adatok.hpp"
+	"tomb.h"
+	"memtrace.h"
+
+1620389546 d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\adatok.hpp
+	<iostream>
+	"tomb.h"
+	"memtrace.h"
+
+1620389452 d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\tomb.h
+	<iostream>
+	<cstddef>
+
+1620386162 d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\memtrace.h
+	<new>
+	<cstdio>
+	<stdlib.h>
+	<iostream>
+	<fstream>
+	<sstream>
+	<vector>
+	<list>
+	<map>
+	<algorithm>
+	<functional>
+	<memory>
+	<iomanip>
+	<locale>
+	<typeinfo>
+	<ostream>
+	<stdexcept>
+	<ctime>
+	<iterator>
+	<regex>
+
+1620386162 source:d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\memtrace.cpp
+	<stdio.h>
+	<stdlib.h>
+	<string.h>
+	<time.h>
+	<ctype.h>
+	"memtrace.h"
+
+1620386162 source:d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\privatszemely.cpp
+
+1620386162 source:d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\publikusszemely.cpp
+
+1620389441 d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\string.h
+	<iostream>
+	<cstring>
+
+1620388886 source:d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\string.cpp
+	"string.h"
+
+1620382415 source:d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\string5.cpp
+	<iostream>
+	<cstring>
+	"memtrace.h"
+	"string5.h"
+
+1620391115 d:\users\sandor\downloads\c++\hazimasolat\prog2_nhf\hazi\string5.h
+	<iostream>
+
+1620386164 source:e:\bme\4. évad\prog2\zsombor\hazi\adatok.cpp
+	<iostream>
+
+1620392326 source:e:\bme\4. évad\prog2\zsombor\hazi\main.cpp
+	<iostream>
+	"memtrace.h"
+	"adatok.hpp"
+	"tomb.h"
+
+1620386164 e:\bme\4. évad\prog2\zsombor\hazi\memtrace.h
+	<new>
+	<cstdio>
+	<stdlib.h>
+	<iostream>
+	<fstream>
+	<sstream>
+	<vector>
+	<list>
+	<map>
+	<algorithm>
+	<functional>
+	<memory>
+	<iomanip>
+	<locale>
+	<typeinfo>
+	<ostream>
+	<stdexcept>
+	<ctime>
+	<iterator>
+	<regex>
+
+1620392326 e:\bme\4. évad\prog2\zsombor\hazi\adatok.hpp
+	<iostream>
+	"tomb.h"
+	"string5.h"
+
+1620390756 e:\bme\4. évad\prog2\zsombor\hazi\tomb.h
+	<iostream>
+	<cstddef>
+
+1620391116 e:\bme\4. évad\prog2\zsombor\hazi\string5.h
+	<iostream>
+
+1620386164 source:e:\bme\4. évad\prog2\zsombor\hazi\memtrace.cpp
+	<stdio.h>
+	<stdlib.h>
+	<string.h>
+	<time.h>
+	<ctype.h>
+	"memtrace.h"
+
+1620386164 source:e:\bme\4. évad\prog2\zsombor\hazi\privatszemely.cpp
+
+1620386164 source:e:\bme\4. évad\prog2\zsombor\hazi\publikusszemely.cpp
+
+1620392500 source:e:\bme\4. évad\prog2\zsombor\hazi\string5.cpp
+	<iostream>
+	<cstring>
+	"string5.h"
+
+1620386164 source:c:\users\sandor\downloads\hazi\adatok.cpp
+	<iostream>
+
+1620574929 source:c:\users\sandor\downloads\hazi\main.cpp
+	<iostream>
+	<string.h>
+	"memtrace.h"
+	<iostream>
+	<fstream>
+	"adatok.hpp"
+	"victor.h"
+	"element.h"
+	"string5.h"
+	"gtest_lite.h"
+
+1620386164 c:\users\sandor\downloads\hazi\memtrace.h
+	<new>
+	<cstdio>
+	<stdlib.h>
+	<iostream>
+	<fstream>
+	<sstream>
+	<vector>
+	<list>
+	<map>
+	<algorithm>
+	<functional>
+	<memory>
+	<iomanip>
+	<locale>
+	<typeinfo>
+	<ostream>
+	<stdexcept>
+	<ctime>
+	<iterator>
+	<regex>
+
+1620518965 c:\users\sandor\downloads\hazi\adatok.hpp
+	<iostream>
+	"string5.h"
+	"privatszemely.h"
+	"publikusszemely.h"
+
+1620401321 c:\users\sandor\downloads\hazi\tomb.h
+	<iostream>
+	<cstddef>
+	"memtrace.h"
+
+1620560483 c:\users\sandor\downloads\hazi\string5.h
+	<iostream>
+	"memtrace.h"
+
+1620386164 source:c:\users\sandor\downloads\hazi\memtrace.cpp
+	<stdio.h>
+	<stdlib.h>
+	<string.h>
+	<time.h>
+	<ctype.h>
+	"memtrace.h"
+
+1620386164 source:c:\users\sandor\downloads\hazi\privatszemely.cpp
+
+1620386164 source:c:\users\sandor\downloads\hazi\publikusszemely.cpp
+
+1620560713 source:c:\users\sandor\downloads\hazi\string5.cpp
+	<iostream>
+	<cstring>
+	"memtrace.h"
+	"string5.h"
+
+1620568923 c:\users\sandor\downloads\hazi\privatszemely.h
+
+1620568923 c:\users\sandor\downloads\hazi\publikusszemely.h
+
+1620494497 source:c:\users\sandor\downloads\hazi\victor.cpp
+	<iostream>
+	"victor.h"
+
+1620580243 c:\users\sandor\downloads\hazi\victor.h
+	<iostream>
+	<fstream>
+	"element.h"
+	"string5.h"
+
+1620580159 c:\users\sandor\downloads\hazi\element.h
+	<iostream>
+
+1620386164 c:\users\sandor\downloads\hazi\gtest_lite.h
+	<iostream>
+	<cassert>
+	<cmath>
+	<cstring>
+	<limits>
+	<cstdlib>
+	<string>
+	<fstream>
+	<iterator>
+	<regex>
+	"memtrace.h"
+
diff --git a/hazi/hazi.layout b/hazi/hazi.layout
new file mode 100644
index 0000000000000000000000000000000000000000..6342b7fb0a6b47e818fd2f50a8c8ad723851013f
--- /dev/null
+++ b/hazi/hazi.layout
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+	<FileVersion major="1" minor="0" />
+	<ActiveTarget name="Debug" />
+	<File name="element.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="6" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="316" topLine="4" />
+		</Cursor>
+	</File>
+	<File name="gtest_lite.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="8628" topLine="0" />
+		</Cursor>
+	</File>
+	<File name="main.cpp" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="5" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="7408" topLine="202" />
+		</Cursor>
+	</File>
+	<File name="memtrace.cpp" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="0" topLine="484" />
+		</Cursor>
+	</File>
+	<File name="privatszemely.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="8" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="415" topLine="23" />
+		</Cursor>
+	</File>
+	<File name="adatok.hpp" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="7" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="237" topLine="13" />
+		</Cursor>
+	</File>
+	<File name="string5.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="4" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="5572" topLine="71" />
+		</Cursor>
+	</File>
+	<File name="victor.h" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="6" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="222" topLine="222" />
+		</Cursor>
+	</File>
+	<File name="publikusszemely.h" open="1" top="1" tabpos="6" split="0" active="1" splitpos="0" zoom_1="8" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="345" topLine="14" />
+		</Cursor>
+	</File>
+	<File name="memtrace.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="4" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="3160" topLine="116" />
+		</Cursor>
+	</File>
+	<File name="string5.h" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="4" zoom_2="0">
+		<Cursor>
+			<Cursor1 position="9255" topLine="124" />
+		</Cursor>
+	</File>
+</CodeBlocks_layout_file>
diff --git a/hazi/main.cpp b/hazi/main.cpp
index ae4c22df54953d2ae43d450d633b6cb50603da4c..96f87bccea7ece77ac5a7f5d13246cbc042ac3cc 100644
--- a/hazi/main.cpp
+++ b/hazi/main.cpp
@@ -10,86 +10,251 @@
 #include "victor.h"
 #include "element.h"
 #include "string5.h"
+#include "gtest_lite.h"
 
 using std::cout;
 using std::cin;
 using std::endl;
-
+using std::stringstream;
 
 
 int main()
 {
+    //Generikus tömb, amiben tároljuk majd a láncolt listánk
     victor<Adatok> adatok;
 
-    cout<< "Udv a telefonkonyvben :)))))))"<<endl;
-    cout<< "1-es: szemely felvetel" <<endl;
-    cout<< "2-as: szemelyek listazasa" <<endl;
-    cout<< "3-es: szemely torlese" <<endl;
-    cout<< "4-es: fajlba iras" <<endl;
-    cout<< "5-os: vCardba iras" <<endl;
-    cout<< "6-os: kilepes" <<endl;
+    TEST(TEST_01, Default konstruktor test){
+
+        stringstream egy;
+
+        adatok.addElement(Adatok(PublikusAdat(), PrivatAdat()));
+
+        //adatok.kiir();
+        adatok.testkiir(egy);
+
+        EXPECT_STREQ("0 0 0 0 0\n", egy.str().c_str());
+
+        adatok.deleteElement(0);
+    }END
+
+    TEST(TEST_02, Konstruktor teszteles){
+
+        stringstream egy;
+
+        adatok.addElement(Adatok(PublikusAdat("Kiss Bela", "06301111222"), PrivatAdat("beci", "Pest Virag 24", "06304444555")));
+
+        adatok.testkiir(egy);
+
+        EXPECT_STREQ("Kiss Bela 06301111222 beci Pest Virag 24 06304444555\n", egy.str().c_str());
+
+        adatok.deleteElement(0);
+    }END
+
+    TEST(TEST_03, Egy elem feltoltese){
+
+        stringstream egy;
+
+        String nev = "Kiss Bela", munkaszam = "06301111222", becnev = "beci", lakcim = "Pest Virag 24", privatszam = "06304444555";
+        adatok.addElement(Adatok(PublikusAdat(nev, munkaszam), PrivatAdat(becnev, lakcim, privatszam)));
+
+        adatok.testkiir(egy);
+
+        EXPECT_STREQ("Kiss Bela 06301111222 beci Pest Virag 24 06304444555\n", egy.str().c_str());
+        adatok.deleteElement(0);
+    }END
+
+    TEST(TEST_04, Egy elem torlese){
+
+        stringstream egy;
+
+        adatok.addElement(Adatok(PublikusAdat("Kiss Bela", "06301111222"), PrivatAdat("beci", "Pest Virag 24", "06304444555")));
+        adatok.addElement(Adatok(PublikusAdat("Nagy Tamas", "06307777888"), PrivatAdat("tomi", "Buda Kerekes 50", "06303333666")));
+
+        adatok.deleteElement(0);
+
+        adatok.testkiir(egy);
+
+        EXPECT_STREQ("Nagy Tamas 06307777888 tomi Buda Kerekes 50 06303333666\n", egy.str().c_str());
+
+        adatok.deleteElement(0);
+    }END
+
+    TEST(TEST_05, Ures elem torlese){
+
+        stringstream egy;
+
+        adatok.addElement(Adatok(PublikusAdat("Kiss Bela", "06301111222"), PrivatAdat("beci", "Pest Virag 24", "06304444555")));
+
+        adatok.deleteElement(0);
+
+        adatok.testkiir(egy);
+
+        EXPECT_STREQ("Nincs adat, nem listazhatsz\n", egy.str().c_str());
+
+    }END
+
+    TEST(TEST_06, Listazas teszteles){
+
+        stringstream egy;
+
+        adatok.addElement(Adatok(PublikusAdat("Kiss Bela", "06301111222"), PrivatAdat("beci", "Pest Virag 24", "06304444555")));
+        adatok.addElement(Adatok(PublikusAdat("Nagy Tamas", "06307777888"), PrivatAdat("tomi", "Buda Kerekes 50", "06303333666")));
+
+        adatok.testkiir(egy);
+
+        EXPECT_STREQ("Kiss Bela 06301111222 beci Pest Virag 24 06304444555\nNagy Tamas 06307777888 tomi Buda Kerekes 50 06303333666\n", egy.str().c_str());
+
+    }END
+
+    TEST(TEST_07, Ures lista teszteles){
+
+        stringstream egy;
+
+        adatok.deleteElement(1);
+        adatok.deleteElement(0);
+
+        adatok.testkiir(egy);
+
+        EXPECT_STREQ("Nincs adat, nem listazhatsz\n", egy.str().c_str());
+
+    }END
+
+    TEST(TEST_08, Fajlba iras){
+
+        stringstream egy;
+
+        adatok.addElement(Adatok(PublikusAdat("Kiss Bela", "06301111222"), PrivatAdat("beci", "Pest Virag 24", "06304444555")));
+        adatok.testfkiiras(egy);
+
+        EXPECT_STREQ("A fajlba iras sikeres volt\n", egy.str().c_str());
+
+        adatok.deleteElement(0);
+    }END
+
+    TEST(TEST_09, Fajlba iras ures){
+
+        stringstream egy;
+
+        adatok.testfkiiras(egy);
+
+        EXPECT_STREQ("Nincs adat, igy nem irhatsz fajlba\n", egy.str().c_str());
+    }END
+    TEST(TEST_10, vCard kiiras){
+
+        stringstream egy;
+
+        adatok.addElement(Adatok(PublikusAdat("Kiss Bela", "06301111222"), PrivatAdat("beci", "Pest Virag 24", "06304444555")));
+
+        adatok.testvCardkiiras(egy);
+
+        EXPECT_STREQ("A vCard fajlbairas sikeres volt\n", egy.str().c_str());
+
+        adatok.deleteElement(0);
+    }END
+
+    TEST(TEST_11, vCard ures kiiras){
+
+        stringstream egy;
+
+        adatok.testvCardkiiras(egy);
+
+        EXPECT_STREQ("Nincs adat, nem tudsz vCardba irni\n", egy.str().c_str());
+    }END
+
+    cout<<endl;
+
+    //Menu
+    cout<< "+------------------------------------------+"<<endl;
+    cout<< "|        Udv a telefonkonyvben :)))))))    |"<<endl;
+    cout<< "|        1-es: szemely felvetel            |" <<endl;
+    cout<< "|        2-as: szemelyek listazasa         |" <<endl;
+    cout<< "|        3-es: szemely torlese             |" <<endl;
+    cout<< "|        4-es: fajlba iras                 |" <<endl;
+    cout<< "|        5-os: vCardba iras                |" <<endl;
+    cout<< "|        6-os: kilepes                     |" <<endl;
     cout<< "+------------------------------------------+" << endl;
+    cout<<endl;
 
 
 
     bool quit = false;
-    int index = 0;
+    int felvett = 0;
+    int torolt = 0;
 
+    //Ciklus ami addig fut, amíg ki nem akarunk lépni
     while(!quit){
+
         String bejov;
 
         cout<< "Mit szeretnel?";
         cout<<endl;
         cin>>bejov;
 
+        //Ha az 1-est választja bekéri az adatokat a felhasználótól
         if (!strcmp(bejov.c_str(), "1")){
             String aznev, munkaszam, becenevv, lakcim, privatszam;
+
             cout<< "Add meg a nevet szokozzel elvalasztva" << endl;
             String vezet, kereszt;
             cin>>vezet>>kereszt;
             aznev = vezet + " " + kereszt;
+
             cout<< "Add meg a munkaszamot" << endl;
             cin>>munkaszam;
+
             cout<< "Add meg a becenevet" << endl;
             cin>>becenevv;
             String telep, utca, hazszam;
+
             cout<< "Add meg a lakcimet(telepules, utca, hazszam)" << endl;
             cin>>telep>>utca>>hazszam;
             lakcim = telep + ";" + utca + " utca;" + ";" + hazszam;
+
             cout<< "Add meg a privatszamot" << endl;
             cin>>privatszam;
+
+            //Felveszi a bevett adatokat
             adatok.addElement(Adatok(PublikusAdat(aznev, munkaszam), PrivatAdat(becenevv, lakcim, privatszam)));
-            cout<< "A felvett szemely indexe " << index <<endl;
-            index++;
+            cout<< "A felvett szemely indexe " << felvett <<endl;
+            felvett++;
         }
 
+        //Ha kettest választ kilistázza a felvett adatokat, a törölteket nem
         else if (!strcmp(bejov.c_str(), "2")){
             adatok.kiir();
         }
 
+        //Kitörli a megadott indexű elemet
         else if (!strcmp(bejov.c_str(), "3")){
             int torol;
             cout<< "Kit szeretnel torolni? Add meg az indexet"<<endl;
             cin>>torol;
-            if (torol >= index){
+            //Ha nagyobb indexet ad meg, mint van,
+            //vagy nem elfogadható értéket, akkor nem lehet törölni
+            if (torol >= felvett || torol < 0){
                 cout<< "Nincs ilyen adat nem torolhetsz"<<endl;
             }
             else {
-                adatok.deleteElement(torol);
-                index--;
+                //Egyébként töröl
+                adatok.deleteElement(torol-torolt);
                 cout<< "Sikeres torles" <<endl;
-                cout<< "Az indexek egyel hatrebb csusztak! (pl.: az 1-es 0-as lett)" << endl;
+                //cout<< "Az indexek egyel hatrebb csusztak! (pl.: az 1-es 0-as lett)" << endl;
+                torolt++;
             }
         }
+        //Fájlbaírás
         else if (!strcmp(bejov.c_str(), "4")){
             adatok.fkiiras();
         }
+        //vCardba írás
         else if (!strcmp(bejov.c_str(), "5")){
             adatok.vCardkiiras();
         }
+        //Kilépés
         else if (!strcmp(bejov.c_str(), "6")){
             quit = true;
         }
+        //Minden egyéb esetben ki kell lépni, a Jporta miatt
         else {
             quit = true;
         }
diff --git a/hazi/obj/Debug/adatok.o b/hazi/obj/Debug/adatok.o
new file mode 100644
index 0000000000000000000000000000000000000000..ef4e085cd031f118a6e56fcbc1e3aa0bf89f7b6f
Binary files /dev/null and b/hazi/obj/Debug/adatok.o differ
diff --git a/hazi/obj/Debug/main.o b/hazi/obj/Debug/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..4a37108b12084dfba14ab6b75e70165b978af817
Binary files /dev/null and b/hazi/obj/Debug/main.o differ
diff --git a/hazi/obj/Debug/memtrace.o b/hazi/obj/Debug/memtrace.o
new file mode 100644
index 0000000000000000000000000000000000000000..190298f8eba492859da9dbb6795500f89a20cd21
Binary files /dev/null and b/hazi/obj/Debug/memtrace.o differ
diff --git a/hazi/obj/Debug/privatadat.o b/hazi/obj/Debug/privatadat.o
new file mode 100644
index 0000000000000000000000000000000000000000..04334485d466c785205c5d384b14442eef560776
Binary files /dev/null and b/hazi/obj/Debug/privatadat.o differ
diff --git a/hazi/obj/Debug/privatszemely.o b/hazi/obj/Debug/privatszemely.o
new file mode 100644
index 0000000000000000000000000000000000000000..dc15b4d4fd3486304692075ff44a9f0a7da7a467
Binary files /dev/null and b/hazi/obj/Debug/privatszemely.o differ
diff --git a/hazi/obj/Debug/publikusadat.o b/hazi/obj/Debug/publikusadat.o
new file mode 100644
index 0000000000000000000000000000000000000000..eb65b1bb57c6c311654593b0d2e155c6aa0e3046
Binary files /dev/null and b/hazi/obj/Debug/publikusadat.o differ
diff --git a/hazi/obj/Debug/publikusszemely.o b/hazi/obj/Debug/publikusszemely.o
new file mode 100644
index 0000000000000000000000000000000000000000..d0ab0d149ea459affb06d5e3f47ef15aafad1968
Binary files /dev/null and b/hazi/obj/Debug/publikusszemely.o differ
diff --git a/hazi/obj/Debug/string.o b/hazi/obj/Debug/string.o
new file mode 100644
index 0000000000000000000000000000000000000000..d9db83c786244710bc6b8ba8a1d29fd6b92fb6a8
Binary files /dev/null and b/hazi/obj/Debug/string.o differ
diff --git a/hazi/obj/Debug/string5.o b/hazi/obj/Debug/string5.o
new file mode 100644
index 0000000000000000000000000000000000000000..f0cd5dff3b9dc67c6be3d0e2d2ebc2a53d562518
Binary files /dev/null and b/hazi/obj/Debug/string5.o differ
diff --git a/hazi/obj/Debug/victor.o b/hazi/obj/Debug/victor.o
new file mode 100644
index 0000000000000000000000000000000000000000..bf055e775fb2eadec38bfb1cca754a794ddb4eea
Binary files /dev/null and b/hazi/obj/Debug/victor.o differ
diff --git a/hazi/privatszemely.h b/hazi/privatszemely.h
index b570980de7ac522197fa4b563f19351ecb09d421..4bb8f6bc2aaf3187058a2fc42efe1980471aa837 100644
--- a/hazi/privatszemely.h
+++ b/hazi/privatszemely.h
@@ -1,21 +1,30 @@
 #ifndef PRIVATSZEMELY_H_INCLUDED
 #define PRIVATSZEMELY_H_INCLUDED
 
+//PrivatAdat class, itt vannak tárolva a privát adatok:
+//becenév, lakcím, privát telefonszám
 class PrivatAdat {
+    //A három tárolt adat
     String becenev;
     String cim;
     String privatsz;
 public:
+    //Default konstruktor, minden adatot "0"-ra állít alaphelyzetben
     PrivatAdat(): becenev("0"), cim("0"), privatsz("0"){}
 
+    //Konstruktor
     PrivatAdat(String becenev, String cim, String privatsz): becenev(becenev), cim(cim), privatsz(privatsz) {}
 
+    //Copy konstruktor
     PrivatAdat(const PrivatAdat& dt){
         becenev = dt.becenev;
         cim = dt.cim;
         privatsz = dt.privatsz;
     }
 
+    //Egyenlőség vizsgálat operátor
+    //igazzal tér vissza, ha minden adat egyenlő
+    //egyébként pedig hamissal
     bool operator==(const PrivatAdat& tbc){
         if (becenev == tbc.becenev && cim == tbc.cim && privatsz == tbc.privatsz){
             return true;
@@ -23,6 +32,8 @@ public:
         return false;
     }
 
+    //Sima egyenlőség operátor
+    //Mindegyik adatot, a megadott típussal teszi egyenlővé
     PrivatAdat& operator=(const PrivatAdat& kok){
         becenev = kok.becenev;
         cim = kok.cim;
@@ -30,12 +41,17 @@ public:
         return *this;
     }
 
+    //Függvény, ami visszatér a névvel
     const String& getnev() {
         return becenev;
     }
+
+    //Függvény, ami visszatér a lakcímével
     const String& getcim(){
         return cim;
     }
+
+    //Függvény, ami visszatér a privátszámával
     const String& getprivatsz(){
         return privatsz;
     }
diff --git a/hazi/publikusszemely.h b/hazi/publikusszemely.h
index 196133927a96a5200ccb3089195b2a737da1eceb..9c42ba7e28b88c480a79fcb7df159f0bb7f3a2eb 100644
--- a/hazi/publikusszemely.h
+++ b/hazi/publikusszemely.h
@@ -1,33 +1,48 @@
 #ifndef PUBLIKUSSZEMELY_H_INCLUDED
 #define PUBLIKUSSZEMELY_H_INCLUDED
 
+//PublikusAdat class, itt vannak tárolva a publikus adatok:
+//Teljes név, munkai telefonszám
 class PublikusAdat {
     String nev;
     String munksz;
 public:
+    //Default konstruktor, mindent "0"-ra állít alaphelyzetben
     PublikusAdat(): nev("0"), munksz("0"){}
 
+    //Konstruktor
     PublikusAdat(String nev, String munksz): nev(nev), munksz(munksz) {}
 
+    //Copy konstruktor
     PublikusAdat(const PublikusAdat& dt){
         nev = dt.nev;
         munksz = dt.munksz;
     }
 
+    //Egyenlőséget vizsgáló operátor,
+    //igazzal tér vissza ha minden PublikusAdat tag megegyezik
+    //egyébként pedig hamissal
     bool operator==(const PublikusAdat& tbc){
         if (nev == tbc.nev && munksz == tbc.munksz){
             return true;
         }
         return false;
     }
+
+    //Egyenlőség operátor,
+    //Mindegyik adatot, a megadott típussal teszi egyenlővé
     PublikusAdat& operator=(const PublikusAdat& kok){
         nev = kok.nev;
         munksz = kok.munksz;
         return *this;
     }
+
+    //Függvény, ami visszaadja a teljes név adattagot
     const String& getpubnev(){
         return this->nev;
     }
+
+    //Függvény, ami visszaadja a munkai telefonszámot
     const String& getmunksz(){
         return this->munksz;
     }
diff --git a/hazi/string5.cpp b/hazi/string5.cpp
index 2f56a2ca314639146c24c048d02b4c6f240d9b7d..9b1dea91f0b815bde820bc0e3a5387376423d0a3 100644
--- a/hazi/string5.cpp
+++ b/hazi/string5.cpp
@@ -62,10 +62,14 @@ String::String(const String& s1) {
     strcpy(pData, s1.pData);
 }
 
+//Egyenlőséget vizsgáló operátor
 bool String::operator==(const String& tbc){
+    //Ha nem egyezik meg a stringek hossza hamissal tér vissza
     if (len != tbc.len){
         return false;
     }
+    //Egyébként pedig végigmegy a karaktereken,
+    //és igazzal tér vissz ha egyeznek, amúgy pedig hamissal
     else {
         for (size_t i = 0; i < len; i++){
             if (this[i] == tbc[i]){
@@ -78,6 +82,7 @@ bool String::operator==(const String& tbc){
     }
 }
 
+//Nem egyenlőséget vizsgáló operátor
 bool String::operator!=(const String& tbc){
     if (len == tbc.len){
         return false;
@@ -165,11 +170,5 @@ std::istream& operator>>(std::istream& is, String& s0) {
     return is;
 }
 
-std::istream& getline(std::istream& is, String& str){
-    char c;
-    while (is.get(c) && c != '\n'){
-        str += c;
-    }
-    return is;
-}
+
 
diff --git a/hazi/string5.h b/hazi/string5.h
index 979645bf7f7ea98d164665723244a2008be41117..6aa0ee3572aa5a34f05f5326242711c62c9416af 100644
--- a/hazi/string5.h
+++ b/hazi/string5.h
@@ -200,5 +200,4 @@ std::istream& operator>>(std::istream& is, String& s0);
 /// kĂŠt str pedig ĂśsszeadhatĂł
 inline String operator+(char ch, const String& str) { return String(ch) + str; }
 
-std::istream& getline(std::istream& is, String& str);
 #endif
diff --git a/hazi/vCardAdatok.vcf b/hazi/vCardAdatok.vcf
new file mode 100644
index 0000000000000000000000000000000000000000..465736ed0bcc6975e6dd8e59812058398190ea94
--- /dev/null
+++ b/hazi/vCardAdatok.vcf
@@ -0,0 +1,7 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Kiss Bela
+FN:beci
+ADR;TYPE=home:;;Pest Virag 24
+TEL;TYPE=home:06304444555
+TEL;TYPE=work:06301111222
diff --git a/hazi/victor.h b/hazi/victor.h
index 124b8dfa6293c2c12d5b7e53d615fa4586a2d083..c6074ffaaf7465a40c2de7b2c830ffcedbe62bdb 100644
--- a/hazi/victor.h
+++ b/hazi/victor.h
@@ -7,35 +7,57 @@
 #include "element.h"
 #include "string5.h"
 
+//generikus tomb amiben egy láncolt listában
+//tárolva vannak az adatok
 template<class T>
+
+//Class amiben az Element class-t tároljuk, azért szukséges,
+//hogy láncolt listával összefűzhetőek legyenek az adattagok
 class victor
 {
+    //Az első elemre mutató pointer
     Element<T>* firstElement;
 public:
 
+    //Konstruktor, alapból NULL-ra állítja az első elemet
     victor() :firstElement(NULL) {}
 
+    //Elemet törlő függvény
     void deleteElement(int index)
     {
-        if (index == -1){
-            return;
-        }
+         //Előző elemre mutató pointer, alaphelyzetben ez NULL
          Element<T>* prev = NULL;
+
+         //Segéd pointer
          Element<T>* helper = NULL;
+
+         //Temporary pointer, ami alaphelyzetben az első elemre mutat
          Element<T>* temp = firstElement;
+
+         //Ciklus, ami elviszi a temp pointert addig,
+         //amíg az nem a indexel megadott elemre mutat
          for(int i = 0; i!=index;i++) {
             prev = temp;
             temp = temp->next;
          }
+
+         //Megvizsgálja, hogy a temp nem NULL-e,
+         //ha igen kilép a függvényből, mert nincs teendő
          if (temp == NULL) {
             return;
          }
+
+         //Egyébként megvizsgálja, hogy nem e az első elem az ami meg van adva,
+         //ha igen, akkor törli azt, s a helperrel az első elemet az a temp->nextre állítja
          else {
             if(prev == NULL) {
                 helper = temp->next;
                 delete temp;
                 firstElement = helper;
             }
+
+            //Ha nem az első, akkor az előző next pointerét az adott next pointerre állítja,
+            // s törli az adatot
             else {
                 prev->next = temp->next;
                 delete temp;
@@ -44,57 +66,93 @@ public:
         return;
     }
 
+    //Elemet hozzáadó függvény
     void addElement(T element) {
+
+        //Megvizsgálja, hogy létezik-e első element,
+        //ha nem a hozzáadott lesz az
         if (firstElement == NULL) {
             firstElement = new Element<T>(element);
         }
+
+        //Egyébként pedig elmegy a lista végéig, s oda illeszti be az elemet
         else {
             Element<T>* temp = firstElement;
-        while (temp->next != NULL) {
-            temp = temp->next;
-        }
-        temp->next = new Element<T>(element);
+            while (temp->next != NULL) {
+                temp = temp->next;
+            }
+            temp->next = new Element<T>(element);
         }
     }
 
+    //Függvény, ami megkeresi az adott indexű elemet
     T getElementAt(int index) {
         Element<T>* temp = firstElement;
         int i = 0;
+        //Az adott elemig elmegy a függvény,
+        //s így a temp változó a keresett értékű lesz
         while (i<index) {
             temp = temp->next;
             i++;
         }
+        //Visszatér a keresett element Value-jával
         return temp->getValue();
     }
 
+    //Függvény, ami kiírja consolba az eddig felvett adatoknak a PublikusAdat adattagjait
     void kiir(){
         Element<T>* temp = firstElement;
+        //Ha nincs még elem a listában nem lehet kiiratni
         if (temp == NULL){
             std::cout<<"Nincs adat, nem listazhatsz"<<std::endl;
         }
+        //Egyébként végig megy az adatok, s kíírja a PublikusAdatokat
         else{
             while (temp != NULL) {
                 std::cout<<temp->getValue().getpubad().getpubnev()<<" ";
-                std::cout<<temp->getValue().getpriv().getcim()<<" ";
                 std::cout<<temp->getValue().getpubad().getmunksz()<<std::endl;
                 temp = temp->next;
             }
         }
     }
 
+    //Külön kiírás a tesztnek
+    //Kb. ugyanúgy ír ki mint a fájlba
+    void testkiir(std::ostream& out) const{
+        Element<T>* temp = firstElement;
+        if (temp == NULL){
+            out<<"Nincs adat, nem listazhatsz"<<std::endl;
+        }
+        else{
+            while (temp != NULL) {
+                out<<temp->getValue().getpubad().getpubnev()<<" "
+                <<temp->getValue().getpubad().getmunksz()<<" "
+                <<temp->getValue().getpriv().getnev()<<" "
+                <<temp->getValue().getpriv().getcim()<<" "
+                <<temp->getValue().getpriv().getprivatsz()<<"\n";
+                temp = temp->next;
+            }
+        }
+    }
+
+    //Fájlba kiíró függvény
     void fkiiras() const{
         Element<T>* temp = firstElement;
+        //Ha nincs még elem a listában nem lehet fájlba írni
         if (temp == NULL){
             std::cout<< "Nincs adat, igy nem irhatsz fajlba" <<std::endl;
         }
+
+        //Egyébként kiír minden adatot a fájlba külön sorokban
         else{
                 std::ofstream fajl("adatok.txt");
                 if (!fajl){
                     return;
                 }
+                //Ciklus ami végig megy az adatokon a kiiratás során
                 while (temp != NULL){
                     fajl<<temp->getValue().getpubad().getpubnev()<<"\n"<<temp->getValue().getpubad().getmunksz()<<"\n"<<
-                    temp->getValue().getpriv().getnev()<<"\n"<<temp->getValue().getpriv().getcim()<<" "<<temp->getValue().getpriv().getprivatsz()<<"\n";
+                    temp->getValue().getpriv().getnev()<<"\n"<<temp->getValue().getpriv().getcim()<<"\n"<<temp->getValue().getpriv().getprivatsz()<<"\n";
                     temp = temp->next;
                 }
                 fajl.close();
@@ -102,16 +160,45 @@ public:
         }
     }
 
+    void testfkiiras(std::ostream& out) const{
+        Element<T>* temp = firstElement;
+        //Ha nincs még elem a listában nem lehet fájlba írni
+        if (temp == NULL){
+            out<< "Nincs adat, igy nem irhatsz fajlba" <<std::endl;
+        }
+
+        //Egyébként kiír minden adatot a fájlba külön sorokban
+        else{
+                std::ofstream fajl("adatok.txt");
+                if (!fajl){
+                    return;
+                }
+                //Ciklus ami végig megy az adatokon a kiiratás során
+                while (temp != NULL){
+                    fajl<<temp->getValue().getpubad().getpubnev()<<"\n"<<temp->getValue().getpubad().getmunksz()<<"\n"<<
+                    temp->getValue().getpriv().getnev()<<"\n"<<temp->getValue().getpriv().getcim()<<"\n"<<temp->getValue().getpriv().getprivatsz()<<"\n";
+                    temp = temp->next;
+                }
+                fajl.close();
+                out << "A fajlba iras sikeres volt" << std::endl;
+        }
+    }
+
+    //vCardba kiíró függvény
     void vCardkiiras() const{
         Element<T>* temp = firstElement;
+        //Ha nincs még elem a listában nem lehet vCardba írni
         if (temp == NULL){
             std::cout<< "Nincs adat, nem tudsz vCardba irni"<< std::endl;
         }
+
+        //Egyébként kiír minden adatot egy vCard fájlba külön vCardnak helyes formátumba
         else {
             std::ofstream fajl("vCardAdatok.vcf");
             if (!fajl){
                 return;
             }
+            //Ciklus ami végig megy az adatokon a kiiratás során
             while (temp != NULL){
                 fajl<< "BEGIN:VCARD\nVERSION:3.0\nN:" << temp->getValue().getpubad().getpubnev() << "\nFN:" << temp->getValue().getpriv().getnev() <<
                 "\nADR;TYPE=home:;;" << temp->getValue().getpriv().getcim() << "\nTEL;TYPE=home:" << temp->getValue().getpriv().getprivatsz() << "\nTEL;TYPE=work:"
@@ -124,18 +211,49 @@ public:
 
     }
 
+    void testvCardkiiras(std::ostream& out) const{
+        Element<T>* temp = firstElement;
+        //Ha nincs még elem a listában nem lehet vCardba írni
+        if (temp == NULL){
+            out<< "Nincs adat, nem tudsz vCardba irni"<< std::endl;
+        }
+
+        //Egyébként kiír minden adatot egy vCard fájlba külön vCardnak helyes formátumba
+        else {
+            std::ofstream fajl("vCardAdatok.vcf");
+            if (!fajl){
+                return;
+            }
+            //Ciklus ami végig megy az adatokon a kiiratás során
+            while (temp != NULL){
+                fajl<< "BEGIN:VCARD\nVERSION:3.0\nN:" << temp->getValue().getpubad().getpubnev() << "\nFN:" << temp->getValue().getpriv().getnev() <<
+                "\nADR;TYPE=home:;;" << temp->getValue().getpriv().getcim() << "\nTEL;TYPE=home:" << temp->getValue().getpriv().getprivatsz() << "\nTEL;TYPE=work:"
+                << temp->getValue().getpubad().getmunksz()<< "\n";
+                temp = temp->next;
+            }
+            fajl.close();
+            out << "A vCard fajlbairas sikeres volt" << std::endl;
+        }
+
+    }
+
+    //Függvény ami töröl minden adatot
     void clear(){
+        //Ha nincs elem visszatér, nincs mit tennie
         if (firstElement == NULL) return;
         Element<T>* next = firstElement->next;
         Element<T>* temp = firstElement;
+        //Ciklus ami végig megy az elemeken és törli őket
         while (temp->next != NULL) {
             next = temp->next;
             delete temp;
             temp = next;
         }
+        //Végül az utolsó elemet is törlő parancs
         delete temp;
     }
 
+    //Destruktor, ami meghívja a clear() függvényt, s így töröl mindent
     ~victor(){
         if (firstElement!= NULL){
             clear();