Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
c++_problem

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22
Bydlisko: Zilinska Un...
Príspevok NapísalOffline : 04.08.2009 11:47

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> &copy);
  MyArray(difference_type low, difference_type up);
  MyArray<Typ> &operator=(const MyArray<Typ> &copy);
  ~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 &copy - reference na pole, ktere bude kopirovano
template<class Typ>
MyArray<Typ>::MyArray(const MyArray &copy) :
  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 &copy - 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> &copy)
  {

    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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.11.08
Prihlásený: 24.01.10
Príspevky: 25
Témy: 1
Príspevok NapísalOffline : 10.08.2009 2:32

asi ti nedam odpoved za aku by si mi podakoval, ale aj tak napisem :P
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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3
Príspevok NapísalOffline : 10.08.2009 11:05

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…
Offline

Užívateľ
Užívateľ
c++_problem

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22
Bydlisko: Zilinska Un...
Príspevok Napísal autor témyOffline : 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
Odpovedať na tému [ Príspevkov: 4 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Mám sa učiť C ++/objective C/ C#?

v Assembler, C, C++, Pascal, Java

5

729

08.07.2014 20:40

XOLOO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Naučte se C++ za 21 dní + C++Builder 6

v Assembler, C, C++, Pascal, Java

18

2411

21.05.2010 21:08

Wpegb Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hledá se programátor C/C++ pro vesmírné projekty (Praha)

v Ponuka práce

0

1122

10.05.2016 14:59

evolvsys Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. K: PC Literaturu- C++/C#/java/python/ruby/RoR

v Kúpim

0

409

13.05.2014 18:16

expresado Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. rozdiel medzi Borland 3.1 C++ vs Net. C++

v Assembler, C, C++, Pascal, Java

4

574

20.07.2010 12:54

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladam hracov na C&C Generals Zero Hour

v Počítačové hry

10

1248

07.03.2007 19:22

Spirit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Čo mi treba na programovanie v C/C++

v Assembler, C, C++, Pascal, Java

17

1145

25.09.2011 18:14

reDo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. aky je rozdiel medzi C++ a Visual C++ ?

v Assembler, C, C++, Pascal, Java

8

1962

19.02.2011 22:46

vendo2 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladame 3x C/C++ Linux developer- projekt 11/2016-2/2017

v Ponuka práce

1

551

24.10.2016 15:28

michalesku Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Darujem knihy o programovaní (HTML, Java, Visual C++, C++ Builder, Android)

v Vymením a darujem

0

428

01.04.2019 11:20

tomasteicher Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# alebo C++ , ktore knizky na ucenie?

v Assembler, C, C++, Pascal, Java

20

1790

12.02.2011 0:12

The Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. program na projekt (C#, C++, pascal, java)

v Assembler, C, C++, Pascal, Java

2

831

12.03.2009 12:08

Svjatogor Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C/C++ problém so súbormi a hodnotami

v Assembler, C, C++, Pascal, Java

2

308

09.12.2012 10:43

nBXXL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C&C Generals : Zero Hour - turnaj

v Počítačové hry

0

774

25.02.2009 20:18

k0t0l Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako nastavit grafikuv AMD catalyst c.c.

v ATI/AMD grafické karty

17

1482

26.12.2013 11:38

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# alebo C++ appka/program na výpočty

v Assembler, C, C++, Pascal, Java

1

380

20.03.2015 22:36

walther Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra