Avatar billede krukken Juniormester
14. oktober 2004 - 18:37 Der er 10 kommentarer og
1 løsning

enum eller static/const char.

Kan en enum returnere den "string" værdi den har?
Hvordan gør man?

Eller kan man initalisere en static/const char i sine .h fil under private så alle funktioer i klassen har adgang til den?
Hvordan gør man?
Avatar billede arne_v Ekspert
14. oktober 2004 - 18:43 #1
Det mener jeg ikke at man kan.

Det mener jeg godt at man kan. Virker det ikke lige ud af landevejen ?
Avatar billede krukken Juniormester
14. oktober 2004 - 18:51 #2
Også hvis du skal gøre det i headerfilen?
Avatar billede arne_v Ekspert
14. oktober 2004 - 18:57 #3
Ja
Avatar billede arne_v Ekspert
14. oktober 2004 - 18:57 #4
C:\>type zz.h
class zz
{
  private:
      static const int v = 123;
  public:
      void print();
};

C:\>type zz.cpp
#include <iostream>

using namespace std;

#include "zz.h"

void zz::print()
{
  cout << v << endl;
}

int main()
{
  zz *o = new zz();
  o->print();
  return 0;
}

C:\>g++ zz.cpp -o zz.exe

C:\>zz
123
Avatar billede krukken Juniormester
14. oktober 2004 - 20:09 #5
Det jeg skal bruge er et static const char array med ugedagene. Kan du gøres i medlemsdataene? Og hvordan gør man daet?
Avatar billede arne_v Ekspert
14. oktober 2004 - 20:35 #6
Det er tilsyneladende et problem.

Jeg måtte lave:

C:\>type zzz.h
class zzz
{
  private:
      static const char weekday[7][4];
  public:
      void print(int ix);
};

C:\>type zzz.cpp
#include <iostream>

using namespace std;

#include "zzz.h"

const char zzz::weekday[7][4] = { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" };

void zzz::print(int ix)
{
  cout << weekday[ix] << endl;
}

int main()
{
  zzz *o = new zzz();
  o->print(4);
  return 0;
}

C:\>g++ zzz.cpp -o zzz.exe

C:\>zzz
Fri
Avatar billede arne_v Ekspert
14. oktober 2004 - 20:36 #7
Men det kan vel også bruges ?
Avatar billede krukken Juniormester
14. oktober 2004 - 21:17 #8
Jeg kunne nu ikke lige få dit til at virke - men jeg fandt ud af at man kan opretter char arrayet i cpp-filen, altså udenfor alle funktionerne, og dermed har alle funktioner adgang til den. Måske ikke verdens smukkeste - men det funkter godt.

Ligger du et svar?
Avatar billede arne_v Ekspert
14. oktober 2004 - 21:29 #9
Hvilken fejl fik du ? Og med hvilken compiler ?

Enesten ulempe ved en god gammel C style global variabel er at den
er falder lidt ved siden af det objekt orienterede.
Avatar billede arne_v Ekspert
14. oktober 2004 - 21:30 #10
svar
Avatar billede segmose Nybegynder
15. oktober 2004 - 11:26 #11
I Borland builder har man en udvidelse der kan dette (property vistnok) som ville være meget rart at have som std C++.
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