| | |
| 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 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 |
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 |
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 Bydlisko: Zilinska Un... | Napísal autor témy johny3212: 16.08.2009 19:47 | |
|
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 |
---|
| Mám sa učiť C ++/objective C/ C#? v Assembler, C, C++, Pascal, Java | 5 | 729 | 08.07.2014 20:40 XOLOO | | Naučte se C++ za 21 dní + C++Builder 6 v Assembler, C, C++, Pascal, Java | 18 | 2411 | 21.05.2010 21:08 Wpegb | | Hledá se programátor C/C++ pro vesmírné projekty (Praha) v Ponuka práce | 0 | 1122 | 10.05.2016 14:59 evolvsys | | K: PC Literaturu- C++/C#/java/python/ruby/RoR v Kúpim | 0 | 409 | 13.05.2014 18:16 expresado | | rozdiel medzi Borland 3.1 C++ vs Net. C++ v Assembler, C, C++, Pascal, Java | 4 | 574 | 20.07.2010 12:54 walther | | Hladam hracov na C&C Generals Zero Hour v Počítačové hry | 10 | 1248 | 07.03.2007 19:22 Spirit | | Čo mi treba na programovanie v C/C++ v Assembler, C, C++, Pascal, Java | 17 | 1145 | 25.09.2011 18:14 reDo | | aky je rozdiel medzi C++ a Visual C++ ? v Assembler, C, C++, Pascal, Java | 8 | 1962 | 19.02.2011 22:46 vendo2 | | Hladame 3x C/C++ Linux developer- projekt 11/2016-2/2017 v Ponuka práce | 1 | 551 | 24.10.2016 15:28 michalesku | | Darujem knihy o programovaní (HTML, Java, Visual C++, C++ Builder, Android) v Vymením a darujem | 0 | 428 | 01.04.2019 11:20 tomasteicher | | C# alebo C++ , ktore knizky na ucenie? v Assembler, C, C++, Pascal, Java | 20 | 1790 | 12.02.2011 0:12 The | | program na projekt (C#, C++, pascal, java) v Assembler, C, C++, Pascal, Java | 2 | 831 | 12.03.2009 12:08 Svjatogor | | C/C++ problém so súbormi a hodnotami v Assembler, C, C++, Pascal, Java | 2 | 308 | 09.12.2012 10:43 nBXXL | | C&C Generals : Zero Hour - turnaj v Počítačové hry | 0 | 774 | 25.02.2009 20:18 k0t0l | | Ako nastavit grafikuv AMD catalyst c.c. v ATI/AMD grafické karty | 17 | 1482 | 26.12.2013 11:38 walther | | C# alebo C++ appka/program na výpočty v Assembler, C, C++, Pascal, Java | 1 | 380 | 20.03.2015 22:36 walther |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|