[ 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 | 22
Bydlisko: Zilinska Un...
NapísalOffline : 04.08.2009 11:47 | c++_problem

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 | 1
NapísalOffline : 10.08.2009 2:32 | c++_problem

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 | 3
NapísalOffline : 10.08.2009 11:05 | c++_problem

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 | 22
Bydlisko: Zilinska Un...
Napísal autor témyOffline : 16.08.2009 19:47 | c++_problem

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
 [ Príspevkov: 4 ] 


c++_problem



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

796

08.07.2014 20:40

XOLOO

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

1295

07.03.2007 19:22

Spirit

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

620

20.07.2010 12:54

walther

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

2476

21.05.2010 21:08

Wpegb

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

463

13.05.2014 18:16

expresado

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

1390

10.05.2016 14:59

evolvsys

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

2008

19.02.2011 22:46

vendo2

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

1197

25.09.2011 18:14

reDo

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

482

01.04.2019 11:20

tomasteicher

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

608

24.10.2016 15:28

michalesku

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

876

12.03.2009 12:08

Svjatogor

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

1872

12.02.2011 0:12

The

V tomto fóre nie sú ďalšie neprečítané témy.

C&C Generals : Zero Hour - turnaj

v Počítačové hry

0

843

25.02.2009 20:18

k0t0l

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

352

09.12.2012 10:43

nBXXL

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

424

20.03.2015 22:36

walther

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

1520

26.12.2013 11:38

walther



© 2005 - 2024 PCforum, edited by JanoF