Avatar billede thomaxz Nybegynder
09. august 2006 - 09:05 Der er 2 kommentarer og
2 løsninger

Hjælp til kode, som ikke vil virke

jeg har på flg. webside prøvet de forskellige kdoer og er nu npet til Class templates
http://cplusplus.com/doc/language/tutorial/templates.html

jeg har lavet flg. kode


01: #include <iostream>
02: #include <conio.h>
03: using namespace std;
04:
05: template <class T>
06: class pair {
07:    T a, b;
08:  public:
09:    pair (T first, T second)
10:      {a=first; b=second;}
11:    T getmax ();
12: };
13:
14: template <class T>
15: T pair<T>::getmax ()
16: {
17:  T retval;
18:  retval = a>b? a : b;
19:  return retval;
20: }
21:
22:
23: int main ()
24: {
25:   
26:  pair <int> myobject (100, 75);
27:  cout << myobject.getmax();
28: 
29:  getch(); //vent på taste tryk
30:  return 0; //retuner, programmet udført med success
31: }



men dev-c++ kommmer med flg. fejl

15 C:\Dev-Cpp\h5\praktik\proj\09082006\templates\templates4-test1.cpp expected init-declarator before '<' token

15 C:\Dev-Cpp\h5\praktik\proj\09082006\templates\templates4-test1.cpp expected `;' before '<' token

C:\Dev-Cpp\h5\praktik\proj\09082006\templates\templates4-test1.cpp In function `int main()':

26 C:\Dev-Cpp\h5\praktik\proj\09082006\templates\templates4-test1.cpp `pair' undeclared (first use this function)
  (Each undeclared identifier is reported only once for each function it appears in.)

26 C:\Dev-Cpp\h5\praktik\proj\09082006\templates\templates4-test1.cpp expected primary-expression before "int"

26 C:\Dev-Cpp\h5\praktik\proj\09082006\templates\templates4-test1.cpp expected `;' before "int"

27 C:\Dev-Cpp\h5\praktik\proj\09082006\templates\templates4-test1.cpp `myobject' undeclared (first use this function)


nogle der ved hvad der er galt?
Avatar billede bertelbrander Novice
09. august 2006 - 13:26 #1
C++ har selv en template class kaldet pair, jeg tror at compileren forveksler din pair med dens egen.
Hvis du kalder din egen template class for Pair virker det.
Avatar billede thomaxz Nybegynder
09. august 2006 - 13:53 #2
Tak, læg et svar hvis d uvil have pointnes.
Avatar billede bertelbrander Novice
09. august 2006 - 17:23 #3
En anden løsning kunne være at skrive:
using std::cout;
I stedet for
using namespace std;

Eller undlade using namespace std; og skrive std:: foran cout

Jeg samler ikke på point.
Avatar billede thomaxz Nybegynder
10. august 2006 - 08:09 #4
Ok, tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester