Klasa w osobnym pliku

0

Mam jakas klase, wszystkie funkcje skladowe sa definiowane poza nia. Chcialbym aby ta klasa znajdowala sie w innym pliku niz reszta programu (z main). Jak to zrobic? Chcialbym aby funkcje skladowe rowniez byly w tym pliku. Jak potem odnosic sie do takich funkcji w pliku z kodem maina?

0

powiedzmy zapisujesz wszystko do pliku z rozszerzeniem h i potem tylko włączas #include "twojplik.h" (""- plik w tym samym katalogu co projekt)... np.

// kompilacja warunkowa, 
//jesli plik jest juz dolaczony, nie bedzie powtornie kompilowany
#ifndef  __twojplik_H
#define  __twojplik_H

// powiedzmy ze pascalowe usesy
#if !defined(__STRING_H)
#include <string.h>
#endif

// powiedzmy, ze pascalowe interface (międzymordzie ;p)

class moja{
  moja(){return;};  // albo tak deklarujesz metody
  ~moja();  
};

typedef unsigned long  ulong;

#define swap4(a,b) {((ulong) (a))^=((ulong) (b));((ulong) (b))^=((ulong) (a));((ulong) (a))^=((ulong) (b));}

inline ulong xorbit(ulong& buf,char  bit);

// no i implementacja ... 

moja::~moja(){   // albo tak
  return;
}

inline ulong xorbit(ulong& buf,char  bit){
  return (buf^=((ulong)(1<<bit)));
}

#endif

// koniec twojplik.h

program przykład:

#include "twojplik.h"
#include <stdio.h>

int main(){
  ulong a=0,b=5
  xorbit(b,0);
  swap4(a,b);
  printf("a=%d   b=%d\n",a,b); // -> a=4   b=0
  return 0;
}

Ja to sobie dziele na sekcje z definicjami (forwardami tak na prawde) i sekcje z kodem, tylko po to, zeby bylo czytelniejsze, ale możesz pisac wszystko ciurkiem.

0

A jesli mialby to byc plik .cpp to jak mozna to zrobic? Gdzies czytalem o slowie kluczowym extern ale nie wiem kiedy i jak go uzywac. Dzieki za wszelka pomoc!

0

A co za różnica jak sobie nazwiesz plik (twojplik.ala.ma.kota, a potem #include "twojplik.ala.ma.kota") ? I tek musisz uzyc includa... exporty sa potrzebne, ale do tworzenia dll-ek (chyba ;p)

// http://4programmers.net/view_file.php?id=1447 Lepszego przykładu ci nie dam... f_ini.h to plik ze zdefiniowana jedną jedyna klasą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1