Przerobienie programu na kilka plików źródłowych

Andrzej Kaczmarek
2014-10-25 17:18
Andrzej Kaczmarek
0

Mam pewien program i staram się go przerobić na kilka plików źródłowych ale cały czas wywala mi error. Może ktoś bardziej ogarnięty pomorze.

main.cpp

 #include <iostream>
#include <ctime>
#include <conio.h>
#include <cstdlib>
#include "Klasy.hpp"

using namespace std;

int main(/*int argc, char *argv[]*/)

{

Pies Burek ;

Burek.ustawKolor("Czarny");
Burek.ustawWzrost( 90 );

string kolor = Burek.wypiszKolor();
int wzrost = Burek.wypiszWzrost();

cout<<endl<<"Kolor: "<<kolor<<", Wzrost: "<<wzrost<<endl<<endl;

Burek.szczekaj(10);

system("PAUSE");
return EXIT_SUCCESS;

} 

Klasy.hpp

 #ifndef Klasy_hpp
#define Klasy_hpp

class Pies;

#endif 

Klasy.cpp

#include "Klasy.hpp"

using namespace std;

class Pies
{
    private:
    string kolor;
    int wzrost;

    public:
    void ustawKolor( string wybrany_kolor )
        {
        kolor = wybrany_kolor;
        }

    void ustawWzrost( int wybrany_wzrost )
        {
        wzrost = wybrany_wzrost;
        }

        string wypiszKolor()
            {
            return kolor;
            }

    int wypiszWzrost()
        {
        return wzrost;
        }

void szczekaj(int ile)
    {
        cout<<endl;

        for (int i=0; i<ile; i++){
        cout<<"Hau ";
    }
    cout<<endl<<endl<<endl;
    }

}; 
Pomorze to na północy Polski się znajduje. - ŁF 2014-10-25 18:46

Pozostało 580 znaków

2014-10-25 17:38

Rejestracja: 6 lat temu

Ostatnio: 6 godzin temu

Lokalizacja: Kraków

0

Musisz zrobić tak, żeby zaincludować definicje klasy Klass.cpp. Teraz robisz tylko include .hpp ale w nim nie masz żadnego odniesienia do .cpp tej klasy.

Pozostało 580 znaków

2014-10-25 18:17

Rejestracja: 6 lat temu

Ostatnio: 3 dni temu

0

Przykład poprawnie rozdzielonego kodu

//Foo.hpp
#pragma once
int buzz(int);

class Foo(){
public:
    Foo(int);
    int operator()() const;
private:
    int _bar;
}
//Foo.cpp
int buzz(int x){
    return x *= x%5;
}

Foo::Foo(int bar): _bar(bar){}

int Foo::operator()() const{
    return buzz(_bar);
}
edytowany 2x, ostatnio: spartanPAGE, 2014-10-25 18:41
Trochę niezbyt wyraźny przykład, w tych akurat przypadkach warto zapodać w klasie jaklo inline. - _13th_Dragon 2014-10-25 18:32
@_13th_Dragon nie przychodziło mi nic ciekawego do głowy - spartanPAGE 2014-10-25 18:41
Macierz i metoda det() - w ciele stawiasz ... i po sprawie. - _13th_Dragon 2014-10-25 18:51

Pozostało 580 znaków

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