Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Autor | Správa |
---|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 | 22 Bydlisko: Zilinska Un... |
Mam problem s funkciou, vypisuje mi:
expected initializer before ‘MyArray’
problem je vo funkciach typu inline, vid nizzsie
Kód: namespace MyTools {
template<class Typ> class MyArray { private: Typ *Data; int Lower, Size; // Spodní hranice indexu, počet prvků v poli
public: //============ type typedef Typ value_type; typedef Typ &reference; typedef const Typ &const_reference; typedef Typ *iterator; typedef const Typ *const_iterator;
inline iterator begin(); inline iterator end(); };
//tu je problem v definicii (expected initializer before ‘MyArray’) template<class Typ> inline MyArray<Typ>::iterator MyArray<Typ>::begin() { return Data; } }
prikladam cely zdrojak, skuste si to skompilovat, komu sa chce , diik. Kód: /* * MyArray.h * * Created on: 3.8.2009 * Author: johnyB */
#ifndef MYARRAY_H_ #define MYARRAY_H_
#include <iostream> #include <algorithm>
using namespace std; namespace MyTools {
template<class Typ> class MyArray { private: Typ *Data; int Lower, Size; // Spodní hranice indexu, počet prvků v poli
public: //============ type typedef Typ value_type; typedef Typ &reference; typedef const Typ &const_reference; typedef Typ *iterator; typedef const Typ *const_iterator; typedef size_t size_type; typedef int int1; // size_t je s největší pravděpodobností unsigned int
typedef ptrdiff_t difference_type; // ptrdiff_t je s největší pravděpodobností int
// ========= Konstruktory, destruktor a operátor = MyArray(); MyArray(const MyArray<Typ> ©); MyArray(difference_type low, difference_type up); MyArray<Typ> &operator=(const MyArray<Typ> ©); ~MyArray();
// Iterátory inline int vypis(); inline iterator begin(); inline iterator end(); inline const_iterator begin() const; inline const_iterator end() const;
// Náhodný přístup k prvkům - operátor [], metoda at inline const_reference operator[](difference_type index) const; inline reference operator[](difference_type index); inline const_reference at(difference_type index) const; inline reference at(difference_type index);
// Relační operátory bool operator==(const MyArray<Typ> &second) const; inline bool operator!=(const MyArray<Typ> &second) const; inline bool operator<(const MyArray<Typ> &second) const; inline bool operator>(const MyArray<Typ> &second) const;
// swap void swap(MyArray<Typ> &second);
// Metody pro informování o kapacitě, velikosti a indexech inline size_type size() const; inline size_type max_size() const; inline size_type capacity() const; inline difference_type getLower() const; inline difference_type getUpper() const; inline bool empty() const;
};
//*****************************************************************************
// Implicitni konstruktor template<class Typ> MyArray<Typ>::MyArray() : Data(NULL), Lower(0), Size(0) { }
// Kopirovaci konstruktor // Parametry: // const Array © - reference na pole, ktere bude kopirovano template<class Typ> MyArray<Typ>::MyArray(const MyArray ©) : Data(NULL), Lower(copy.getLower()), Size(copy.size()) { register iterator d; Data = new Typ[this->size()]; d = begin(); for (register const_iterator p = copy.begin(); p < copy.end(); p++, d++) { *d = *p; }
}
// Konstruktor vytvarejici pole s indexy od low, do up (vcetne) // Parametry: // difference_type low - spodni hranice indexu // difference_type up - horni hranice indexu // Poznamky: // difference_type je s nejvetsi pravdepodobnosti int template<class Typ> MyArray<Typ>::MyArray(difference_type low, difference_type up) : Lower(low), Size(up - low + 1) {
Data = new Typ[size()];
}
// Operator = // Parametry: // const Array © - Reference na pole, ktere bude kopirovano. // Navratova hodnota: // Array<Typ> - Reference na aktualni pole. Nutne pro "skladani" // operatoru = "za sebe". Napr. a = b =c; template<class Typ> MyArray<Typ> &MyArray<Typ>::operator=(const MyArray<Typ> ©) {
delete[] Data; Size = copy.size(); Lower = copy.getLower(); Data = new Typ[size()]; register iterator d = this->begin(); for (register const_iterator t = copy.begin(); t < copy.end(); t++, d++) { *d = *t; }
return *this;
}
// Destruktor template<class Typ> MyArray<Typ>::~MyArray() { delete[] Data; Data = NULL; }
template<class Typ> int MyArray<Typ>::vypis(){
return 1; }
// Metoda begin // Navratova hodnota: // iterator - Iterator odkazujici na zacatek pole template<class Typ> inline MyArray<Typ>::iterator MyArray<Typ>::begin() { return Data; }
// Metoda end // Navratova hodnota: // iterator - Iterator odkazujici za konec pole
template<class Typ> inline MyArray<Typ>::iterator MyArray<Typ>::end() { return &Data[size()]; }
}
#endif /* MYARRAY_H_ */
_________________ Notebook: HP EliteBook 8740w
You can see my work in my www |
|
Registrovaný: 25.11.08 Prihlásený: 24.01.10 Príspevky: 25 Témy: 1 | 1 |
asi ti nedam odpoved za aku by si mi podakoval, ale aj tak napisem
ten nezmysel som skusil skompilovat a prebehlo mi to bez erroru. co znamena ze urcite nebude chyba tam kde pises. cely pseudo kod je divny a nie kompletny. este som nevidel aby v deklaracii triedy bolo pouzite na funkciu inline. je to uplny nezmysel a je tam toho viac, ale viem ze to je teraz nepodstatne. na vyuzivanie kontainerov je standardna knihovna stl, tam mas napriklad taky list ktory splni tvoje poziadavky, ale to ty isto vies , nema vyznam robit nieco ked to uz je spravene, ale ak si to chces spravit odznova sam, tak ti radim nebrat kod od inych, lebo kym nato prides ako to ma byt tak sam by si to urobil dva krat za ten cas, netreba zabudat ze cas su LOVE.
|
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 | 3 |
plna.hlava píše: este som nevidel aby v deklaracii triedy bolo pouzite na funkciu inline. je to uplny nezmysel
Preco? Nikde nie je zakazane, aby bolo inline aj v deklaracii funkcie.
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 | 22 Bydlisko: Zilinska Un... |
plna.hlava, nepochybujem o tvojich programatorskych schopnostiach, ja viem uz kde je problem, niektore kompilatory to beru inak, .skus to skompilovat v linuxe......., a STL s kontajnery ovladam dobre a vies preco to nie je blbost co pisem?, lebo tie kontajnery pouziveju velmi podobny kod tomu mojmu , ak sa zahlbis do kniznic C++, tak zistis ze vsetko tam nepracuje podla tvojich predstav a musis to prerobit, nap. mi mame tak prerobenu celu kniznicu kt. pracuje s tazkymi a lahkymi ukazovatelmi a kej ju implementujes priamo do softu, tak bude navyse nezavisla od kompatibili a verzie s tou v systeme, kedze pouzivame stale funkcie z tej najnovsej, soft sa tak stava menej zavzsli od systemu, to je len jedna z vyhod .
_________________ Notebook: HP EliteBook 8740w
You can see my work in my www |
|
Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 5 | 796 | 08.07.2014 20:40 XOLOO | | v Počítačové hry | 10 | 1295 | 07.03.2007 19:22 Spirit | | v Assembler, C, C++, Pascal, Java | 4 | 620 | 20.07.2010 12:54 walther | | v Assembler, C, C++, Pascal, Java | 18 | 2476 | 21.05.2010 21:08 Wpegb | | v Kúpim | 0 | 463 | 13.05.2014 18:16 expresado | | v Ponuka práce | 0 | 1390 | 10.05.2016 14:59 evolvsys | | v Assembler, C, C++, Pascal, Java | 8 | 2008 | 19.02.2011 22:46 vendo2 | | v Assembler, C, C++, Pascal, Java | 17 | 1197 | 25.09.2011 18:14 reDo | | v Vymením a darujem | 0 | 482 | 01.04.2019 11:20 tomasteicher | | v Ponuka práce | 1 | 608 | 24.10.2016 15:28 michalesku | | v Assembler, C, C++, Pascal, Java | 2 | 876 | 12.03.2009 12:08 Svjatogor | | v Assembler, C, C++, Pascal, Java | 20 | 1872 | 12.02.2011 0:12 The | | v Počítačové hry | 0 | 843 | 25.02.2009 20:18 k0t0l | | v Assembler, C, C++, Pascal, Java | 2 | 352 | 09.12.2012 10:43 nBXXL | | v Assembler, C, C++, Pascal, Java | 1 | 424 | 20.03.2015 22:36 walther | | v ATI/AMD grafické karty | 17 | 1520 | 26.12.2013 11:38 walther |
|