Wątek zablokowany 2013-12-09 00:11 przez Shalom.

Dzielenie programu na kilka plików (C++)

0

Witam was. Program posiada pliki main.cpp, plik2.cpp i plik2.h. Po jego uruchomieniu, zmienne a1, b1 i c1 nie ulegają zmianie, mimo, że w pliku plik2.cpp powinny się pozmieniać ich wartości. Dołączam kod wszystkich plików:

main.cpp----------------------------------------------------------

#include <iostream>
#include "plik2.h"
using namespace std;

int main()
{
    int a1 = 0, b1 = 0, c1 = 0;
    cout<<wypisanie(a1, b1, c1);
    cout<<"Zmienna A= "<<a1<<", zmienna B="<<b1<<", zmienna C="<<c1;

    system("pause");
    return 0;
}

plik2.cpp-----------------------------------------------------------

int wypisanie(int a1, int b1, int c1){

a1 = 10;
b1 = 90;
c1 = 900;

return a1;
return b1;
return c1;

}

plik2.h--------------------------------------------------------------

#ifndef PLIK2_H
#define PLIK2_H/

int wypisanie(int a1,int b1,int c1);

#endif // PLIK2_H
1
  1. Przekazywanie przez referencje
  2. Ten kod się nigdy nie wykona
    return b1;
    return c1;
0

Przez referencję? Jestem początkujący, nie wiem, jak się przekazuje przez referencję z pliku plik2.cpp do main.cpp. Przydałby mi się przykład na kilku plikach, bo szukałem w internecie i za każdym razem pokazane było tylko na pliku main.cpp.

1

http://cpp0x.pl/kursy/Kurs-C+[...]-funkcji-przez-referencje/356

A to że funkcja jest w innym pliku nie ma znaczenia w tym przypadku

0

Teraz mam problem z kompilacją :(. Oto kod:

main.cpp----------------------------------------------------------------------
#include <iostream>
#include "plik2.h"
using namespace std;

int main()
{
int a1 = 0, b1 = 0, c1 = 0;
wypisanie(a1, b1, c1);
cout<<"Zmienna A= "<<a1<<", zmienna B="<<b1<<", zmienna C="<<c1;

system("pause");
return 0;

}

plik2.cpp-----------------------------------------------------------------------
void wypisanie(int wypisz)
{
a1 = 10;
b1 = 90;
c1 = 900;
}

plik2.h-------------------------------------------------------------------------
#ifndef PLIK2_H
#define PLIK2_H

void wypisanie(int a1,int b1,int c1);

#endif

0

Masz pojęcie, co zrobiłeś?

0

No właśnie nie za bardzo :/

0

Skoro nie masz bladego pojęcia co i w jakim celu zrobiłeś, dlaczego mimo to usunąłeś int a1, int b1, int c1?

0

a "int wypisz" zostawić? Jak wpisuje tam ponownie "int a1, int b1, int c1" i jak usuwam "int wypisz", to po uruchomieniu programu, każda wartość wynosi 0...

0

Pomyśl na logikę.
Jeżeli potrzebujesz tej zmiennej (parametru), ma tam być.
Jeżeli jej nie potrzebujesz/nie używasz, usuń.

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