Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania i odpowiedzi
Viewing all articles
Browse latest Browse all 83164

Odpowiedź: Code Blocks błąd przy kompilacji dwóch plików cpp

$
0
0

A gdzie ty masz pliki nagłówkowe (te z końcówką .h)? Nie wspomnę już o niezałączeniu pliku do main'a, za pomocą dyrektywy #include. Odsyłam do tej lektury, jak podzielić kod w c++ na osobne pliki: Link.
A co do twojego kodu.. taka wersja będzie poprawna (nie testowałem, ale powinno działać):

//Treść plików została zamieszczona mniej więcej tak jak będzie to robił kompilator w trakcie kompilacji..

//file2.h

//Tutaj mamy deklarację procedur update i local.. 
//Zawartość tego pliku załączamy do main.cpp, dzięki temu kompilator będzie wiedział, że takie funkcje w ogóle istnieją.
//Natomiast ich ciała zamieszczamy w pliku file2.cpp
void update(double dt, double warming);
void local(double warming);

//main.cpp
#include <iostream>
#include <file2.h>
using namespace std;
//double warming = 0.3; Nie opłaca się tworzyć zmiennej globalnej w tym miejscu..
//Lepiej jest to zrobić lokalnie (w main'ie), a potem przesłać ją do funkcji.

void update(double dt);
void local();
 
int main()
{
    double warming = 0.3;
    cout << "Globalne ocieplenie wynosi "<< warming << " stopni.\n";
    update(0.1);
    cout << "Globalne ocieplenie wynosi "<< warming << " stopni.\n";
    local();
    cout << "Globalne ocieplenie wynosi "<< warming << " stopni.\n";
    return 0;
}

//file.cpp

#include <file2.h>
#include <iostream>

using namespace std;
 
void update(double dt, double warming)
{
    warming += dt;
    cout << "Zwiekszam parametr ocieplenia do "<< warming;
    cout << " stopni.\n";
}
 
void local(double warming)
{ 
    cout << "Lokalne ocieplenie wynosi "<< warming << " stopni.\n";
    cout << "Ale globalne ma wartosc "<< ::warming;
    cout << " stopni.\n";
}

 


Viewing all articles
Browse latest Browse all 83164