Avatar billede powerade Nybegynder
11. november 2003 - 08:48 Der er 17 kommentarer og
1 løsning

Class på MVS

Hej kloge mennesker. Jeg er rookie c++ programmør og samtidig også rookie på en MVS platform. Nå men jeg har syntaks problemer når jeg forsøger at definere en ny klasse..

Sølgende simple definition vil compileren ikke godtage..
class alpha {
    int    x;
public:
    alpha() : x(0) {}    // the null constructor
    alpha(int a) : x(a) {}
};
Er der nogen der kan hjælpe? Evt. forklare mig hvordan syntaksen så ska se ud? Jeg kunne godt bruge nogle kode-eksempler på hvordan definitionen af en ny klasse ska se ud.
På forhånd tak. ;o)
Avatar billede arne_v Ekspert
11. november 2003 - 09:00 #1
Den compiler fint med VC++ 6 !?
Avatar billede arne_v Ekspert
11. november 2003 - 09:01 #2
Og GCC 3.1 ...
Avatar billede arne_v Ekspert
11. november 2003 - 09:02 #3
Hvad fejl får du ?

MVS som i 50 millioner kroner dyrt IBM jern ?
Avatar billede powerade Nybegynder
11. november 2003 - 09:34 #4
Ja den slags MVS.. ;o)
Får følgende fejl
Definition of function class requires parentheses.
Unexpected text alpha encountered.               

Den ber om parantheser... Men, når jeg sætter dem på får jeg bare en ny fejl syntaks-fejl.. Den ber om parantheser og semikolon'er og alverdens tegn.. Men ligemeget hvor meget jeg retter kommer der bare en ny fejl..
Jeg har endnu ikke kunnet finde et eksempel så har virket..
Avatar billede powerade Nybegynder
11. november 2003 - 09:37 #5
Når jeg sætter paranteser omkring navnet får jeg følgende fejl..
class (alpha) æ                                             
    int    x;                                               
public:                                                     
    alpha() : x(0) æå  // the null constructor             
....a.......b.................................................
=====> a - CBC3023 Expecting function or pointer to function.
=====> b - CBC3277 Syntax error: possible missing ';' or ','?
    alpha(int a) : x(a) æå                                   
å;                                                           
æ = { og å = } (grundet tegnsætning på MVS - det er IKKE fejlen.. ;o) )
Avatar billede arne_v Ekspert
11. november 2003 - 09:47 #6
Og det er en C++ compiler ikke en C compiler (der er normalt kun i PC verdenen
at samme compiler dækker begge sprog) ?
Avatar billede powerade Nybegynder
11. november 2003 - 10:01 #7
Det er muligt det bare er en C compiler er jeg ikke helt klar over... Siger C370 dig noget?
Avatar billede powerade Nybegynder
11. november 2003 - 10:21 #8
HVIS det nu er en C og ikke en C++ compiler... Ændrer det så på syntaksen? I så fald hvordan ska det så se ud?
Avatar billede arne_v Ekspert
11. november 2003 - 10:51 #9
C er ikke objektorienteret og har ikke class overhovedet.

Så ja det ændrer syntaxen en hel del.

Tilbage til god gammeldags procedural programmering og funktioner
og structs (med kun data i).
Avatar billede arne_v Ekspert
11. november 2003 - 10:52 #10
Men du må da kunne spørge nogen om det er C eller C++ compiler der er på
maskinen.
Avatar billede powerade Nybegynder
11. november 2003 - 12:49 #11
Ok - Jeg tror måske at der kun er tale om en C compiler så..
En struct er i denne sammenhæng en form for dataareal eller?? Jeg er meget mere hjemme i Java end i C ska lige siges, men det her ska laves i C.
Hvordan definerer jeg en struct så?
Jeg ska bruge et data-areal, og en pointer til dette data som kan bruges i et systemkald på mvs'en. Har du et eksempel jeg kan bruge som guide??
Avatar billede arne_v Ekspert
11. november 2003 - 12:54 #12
Ja.

klasse = data (members) + kode (methods)
struct = data
funktion = kode

struct myrec
{
  int a;
  double b;
  char c[100];
}

...

void f(struct myrec *x);

...

struct myrec info;
info.a = 123;
info.b = 123.456;
strcpy(info.c,"Dette er en test");
f(&info);
Avatar billede powerade Nybegynder
11. november 2003 - 13:30 #13
Tak for eksemplet her. Men hvor skal jeg placere det stykke kode? Før eller efter hovedprogram og procedurer?
Jeg kan ikke få den til at godtage kompileringen. Sætter jeg det ind umiddelbart efter mine "includes" men inden mine funktioner siger den at der er fejl i resten af koden... Som om den ikke bryder sig om at der bliver brugt afsluttende tuborg } inden programmet er slut..
Hvis jeg sætter det inde i hovedprogrammet får jeg følgende fejl,
CBC3275 Unexpected text 'struct' encountered.
Avatar billede powerade Nybegynder
11. november 2003 - 13:38 #14
Har fundet problemet... Det ska se ud som følgende
struct{
  int a;
  double b;
  char c[100];
}myrec;
Men mange tak for hjælpen, smid lige et var så får du point.
Avatar billede arne_v Ekspert
11. november 2003 - 13:41 #15
Sorry jeg glemte et semikolon.

struct myrec
{
  int a;
  double b;
  char c[100];
}; /* <---- her */
Avatar billede arne_v Ekspert
11. november 2003 - 13:42 #16
struct{
  int a;
  double b;
  char c[100];
} myrec;

laver en variabel myrec af en unavngiven type.

struct myrec
{
  int a;
  double b;
  char c[100];
};

laver en type myrec hvor man så senere kan erklære variable af den type.

Så der er en lille forskel.
Avatar billede arne_v Ekspert
11. november 2003 - 13:42 #17
svar
Avatar billede powerade Nybegynder
11. november 2003 - 14:12 #18
Superb nu virker det som du skrev... ;o) Tak for hjælpen
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