C/C++ pliki naglowkowe

19Radek88
Użytkownik
Użytkownik
Posty: 105
Rejestracja: 2 lis 2007, o 21:01
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 14 razy
Pomógł: 4 razy

C/C++ pliki naglowkowe

Post autor: 19Radek88 »

1. Mam prosbe o napisanie zawartosci plikow:

program.cpp
funkcje.h (ew hpp)
funkcje.cpp

Wezmy jakis naprostszy przyklad: Program ma liczyc za pomoca procedury 'sumuj' sume dwoch intów, przy czym funkcja 'sumuj' ma byc umieszczona w oddzielnym pliku.


2. Prosilbym rowniez o pokazanie jak storzyc w oddzielnym pliku klasę i jak sie do niej odwolywac w golwnym programie (zapewne analogicznie do tworzenia funkcji, ale jednak prosilbym o jakis bardzo prosty przyklad)
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

C/C++ pliki naglowkowe

Post autor: soku11 »

funkcje.hpp

Kod: Zaznacz cały

#ifndef FUNKCJE_HPP_INCLUDED
#define FUNKCJE_HPP_INCLUDED

#include <iostream>
#include <string>

int Sum(int a,int b);
short Sum(short a,short b);
float Sum(float a,float b);
double Sum(double a,double b);

class Auto
{
  public:
    enum Kolor_e{Czerwony,Zielony,Niebieski};
  private:
    std::string Marka;
    std::string Model;

    unsigned int Rocznik;
    Kolor_e Kolor;
  public:
    Auto(const char* Marka="Fiat",const char* Model="126p",unsigned int Rocznik=2000,Kolor_e Kolor=Czerwony);
    void Przemaluj(Kolor_e Nowy);
    void Zmien(const char* Marka,const char* Model, unsigned int Rocznik,Kolor_e Kolor);
    void PokazInfo() const;
};

inline void Auto::Przemaluj(Kolor_e Nowy)
{
  Kolor=Nowy;
}
  

#endif // FUNKCJE_HPP_INCLUDED
funkcje.cpp

Kod: Zaznacz cały

#include "funkcje.hpp"

int Sum(int a,int b)
{
  return a+b;
}

short Sum(short a,short b)
{
  return a+b;
}


float Sum(float a,float b)
{
  return a+b;
}

double Sum(double a,double b)
{
  return a+b;
}

Auto::Auto(const char* Marka,const char* Model,unsigned int Rocznik,Kolor_e Kolor)
{
  this->Marka=Marka;
  this->Model=Model;
  this->Rocznik=Rocznik;
  this->Kolor=Kolor;
}

void Auto::Zmien(const char* Marka,const char* Model, unsigned int Rocznik,Kolor_e Kolor)
{
  this->Marka=Marka;
  this->Model=Model;
  this->Rocznik=Rocznik;
  this->Kolor=Kolor;
}

void Auto::PokazInfo() const
{
  std::cout<<Marka<<" "<<Model<<"
";
  std::cout<<"Rocznik: "<<Rocznik<<"
";

  std::cout<<"Kolor: ";
  switch(Kolor)
  {
    case Czerwony:
      std::cout<<"czerwony.
";
      break;
    case Zielony:
      std::cout<<"zielony.
";
      break;
    case Niebieski:
      std::cout<<"niebieski.
";
      break;
  }
}

program.cpp

Kod: Zaznacz cały

#include <iostream>
#include "funkcje.hpp"

int main()
{
  std::cout<<"2+2="<<sum(2,2)<<"
";


  Auto Samochod1("Ford","Mustang Fastback",1969,Auto::Czerwony);
  Auto Samochod2;

  Samochod1.PokazInfo();
  Samochod2.Przemaluj(Auto::Niebieski);
  std::cout<<"
";
  Samochod2.PokazInfo();

  std::cin.get();
  return 0;
}
Ja pisze to tak Mam nadzieje, ze pomoglo. Pozdrawiam.
19Radek88
Użytkownik
Użytkownik
Posty: 105
Rejestracja: 2 lis 2007, o 21:01
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 14 razy
Pomógł: 4 razy

C/C++ pliki naglowkowe

Post autor: 19Radek88 »

Dzieki,

I jeszcze tak na marginesie:

Kod: Zaznacz cały

Auto::Auto(const char* Marka,const char* Model,unsigned int Rocznik,Kolor_e Kolor)
{
//...
}
jest konstruktorem ktory jest automatycznie wywolany w mainie poprzez

Kod: Zaznacz cały

Auto Samochod1("Ford","Mustang Fastback",1969,Auto::Czerwony); 
Zgadza sie?
ODPOWIEDZ