Commit 84ddd1cd by Szeberényi Imre

fixArray

parent fd995c31
...@@ -12,10 +12,9 @@ ...@@ -12,10 +12,9 @@
* >= 6 - Szakasz klónozható * >= 6 - Szakasz klónozható
* >= 7 - Rajztabla is másolható, de csak szakaszt teszünk bele. * >= 7 - Rajztabla is másolható, de csak szakaszt teszünk bele.
* >= 8 - Szorgalmi: Rajztabla is másolható. Poligon is klónozható. * >= 8 - Szorgalmi: Rajztabla is másolható. Poligon is klónozható.
* >= 9 - Rajztabla fixArray sablont használ * == 9 - Rajztabla generikus tömböt használ.
*/ */
#define ELKESZULT 1 #define ELKESZULT 0
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#include "gtest_lite.h" #include "gtest_lite.h"
...@@ -122,7 +121,7 @@ int main(int argc, char** argv) { ...@@ -122,7 +121,7 @@ int main(int argc, char** argv) {
} ENDM } ENDM
#endif #endif
#if ELKESZULT == 5 #if ELKESZULT >= 5
TEST(Rajztabla, Poligonal) { TEST(Rajztabla, Poligonal) {
Rajztabla tabla; Rajztabla tabla;
tabla.felrak(new Szakasz(Pont(20,40), 100, 0, WHITE)); tabla.felrak(new Szakasz(Pont(20,40), 100, 0, WHITE));
...@@ -135,7 +134,7 @@ int main(int argc, char** argv) { ...@@ -135,7 +134,7 @@ int main(int argc, char** argv) {
} ENDM } ENDM
#endif // ELKESZULT #endif // ELKESZULT
#if ELKESZULT == 6 #if ELKESZULT >= 6
TEST(Szakasz, clone) { TEST(Szakasz, clone) {
Szakasz* psz1 = new Szakasz(Pont(20,40), 100, 0, WHITE); Szakasz* psz1 = new Szakasz(Pont(20,40), 100, 0, WHITE);
cout << *psz1 << endl; cout << *psz1 << endl;
...@@ -172,7 +171,7 @@ int main(int argc, char** argv) { ...@@ -172,7 +171,7 @@ int main(int argc, char** argv) {
} ENDM } ENDM
#endif // ELKESZULT #endif // ELKESZULT
#if ELKESZULT == 8 #if ELKESZULT >= 8
TEST(Rajztabla, assign.full) { TEST(Rajztabla, assign.full) {
Rajztabla tabla; Rajztabla tabla;
tabla.felrak(new Szakasz(Pont(20,40), 100, 0, WHITE)); tabla.felrak(new Szakasz(Pont(20,40), 100, 0, WHITE));
...@@ -198,14 +197,15 @@ int main(int argc, char** argv) { ...@@ -198,14 +197,15 @@ int main(int argc, char** argv) {
} ENDM } ENDM
#endif // ELKESZULT #endif // ELKESZULT
/// Itt a vége /// Itt a vége
if (ELKESZULT < 5 && !gtest_lite::test.fail()) if (ELKESZULT < 5 && !gtest_lite::test.fail())
ADD_FAILURE() << "\nLegalabb ELEKSZULT == 5-ig oldja meg a feladatokat!\n"; ADD_FAILURE() << "\nLegalabb ELEKSZULT == 5-ig oldja meg a feladatokat!\n";
if (ELKESZULT >= 10 && !gtest_lite::test.fail()) if (ELKESZULT >= 9 && !gtest_lite::test.fail())
std::cout << "\nSzuper! Mind kesz" << std::endl; std::cout << "\nSzuper! Mind kesz" << std::endl;
else else
std::cout << "\nEKESZULT = " << ELKESZULT << std::endl; std::cout << "\nEKESZULT = " << ELKESZULT << std::endl;
GTEND(std::cerr); // Csak C(J)PORTA működéséhez kell GTEND(std::cerr); // Csak C(J)PORTA működéséhez kell
......
#ifndef GEN_ARRAY2_HPP #ifndef GEN_ARRAY2_HPP
#define GEN_ARRAY2_HPP #define GEN_ARRAY2_HPP
/** /**
* \file gen_array2.hpp * \file gen_array2.hpp
...@@ -14,17 +14,20 @@ ...@@ -14,17 +14,20 @@
/// Generikus tömb sablon /// Generikus tömb sablon
/// @param T - adattípus /// @param T - adattípus
/// @param s - méret /// @param s - méret
template <class T, unsigned int s> // sablon kezdõdik template <class T, unsigned int s> // sablon kezdodik
class Array { // osztálysablon class fixArray { // osztálysablon
T t[s]; // elemek tömbje. s teplate parameter T t[s]; // elemek tömbje. s template parameter
void chk(size_t i) const {
if (i >= s) throw "Indexelesi hiba";
}
public: public:
/// Indexelés. /// Indexelés.
/// @param i - index /// @param i - index
/// @return - referencia az adott indexű elemre /// @return - referencia az adott indexű elemre
/// @return - hiba esetén kivételt dob /// @return - hiba esetén kivételt dob
T& operator[](unsigned int i) { T& operator[](unsigned int i) {
if (i >= s) throw "Indexelesi hiba"; chk(i);
return t[i]; return t[i];
} }
/// Indexelés konstans függvénye. /// Indexelés konstans függvénye.
...@@ -32,8 +35,8 @@ public: ...@@ -32,8 +35,8 @@ public:
/// @return - referencia az adott indexű elemre /// @return - referencia az adott indexű elemre
/// @return - hiba esetén kivételt dob /// @return - hiba esetén kivételt dob
const T& operator[](unsigned int i) const { const T& operator[](unsigned int i) const {
if (i >= s) throw "Indexelesi hiba (const)"; chk(i);
return t[i]; return t[i];
} }
}; };
#endif #endif
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