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++/Poziom-3/Przekazywanie-argumentow-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ń.

0

Co ja robię nie tak...

0

Fajnie, kolejne forum, na którym nie uzyskam pomocy :(

2

Chcesz pomocy? Poczytaj tutoriale/ksążki.
Forum nie jest od nauki podstaw, a pomocy w nieco "poważniejszych" problemach, które nie są opisane w pierwszym lepszym poradniku do C++...

0
Patryk27 napisał(a):

Poczytaj tutoriale/ksążki.

Już cały dzień szukam pomocy w internecie, widziałem już dziesiątki tutoriali... okej, myślałem, że to łatwe do rozwiązania, ale... się myliłem. W takim razie chyba poszukam innego forum, bo mnie już szlag z tym trafi... cały dzień...

0

Ty nie potrzebujesz innego forum - potrzebujesz poznać podstawy języka, w którym piszesz.

0

Pewnie tak, ale chciałem, żeby mi ktoś wyjaśnił, jak to zrobić... wtedy bym to pewnie zrozumiał. A w książkach, jakie mam jest sucha teoria i nie ma możliwości zapytania się "dlaczego to jest tu i co to robi".

0

@Xenidius, już wiem co robisz nie tak:
Zamiast uczyć się próbujesz wymarudzić gotowca.

0

Ludzie błagam was, to nie jest do szkoły, czy coś. Ja chodzę do zaocznej i dziś skończyłem ostatni semestr. Potrzebne mi to do mojej gierki: yoctocraft.webs.com. Nie mogę jej dalej rozwinąć, bo muszę podzielić jej kod źródłowy na kilka plików, a operacje na zmiennych przenieść do plik2.cpp. Pomóżcie kurde, bo ręce opadają, a nie chcę porzucić tego projektu :/.

0

każdym razem pokazane było tylko na pliku main.cpp.
sam szukasz problemów z jednej strony to dobrze z drugiej nie do końca

czytaj tutoriale próbuj i ucz się na błędach

0

Jak mam się uczyć, skoro mam same błędy...

0

@Xenidius chłopie, nie szukaj w internecie rozwiązania swojego dziwnego problemu, tylko kursu "C++ for dummies". NAJPIERW uczymy się języka a POTEM piszemy gry. odwrotnie się po prostu nie da i koniec.
Twój problem nie polega na dzieleniu kodu na pliku, tylko na ZUPEŁNEJ nieznajomości języka.

1

Napisałeś jakąś grę, absolutnie bez pojęcia o podstawach języka?
To ich pewnie nie potrzebujesz :)

0

Umiem nie wiele, to fakt, ale już bym się nauczył czegoś nowego, gdybyście mi pomogli, a nie zaśmiecali forum...

0
_13th_Dragon napisał(a):

Napisałeś jakąś grę, absolutnie bez pojęcia o podstawach języka?

Jak widać znam jakieś podstawy, skoro ją napisałem...

1
Xenidius napisał(a):
_13th_Dragon napisał(a):

Napisałeś jakąś grę, absolutnie bez pojęcia o podstawach języka?

Jak widać znam jakieś podstawy, skoro ją napisałem...

To, że potrafię zrobić kanapkę z serem, nie oznacza, że będę w stanie bez uprzedniego przygotowania ugotować <wstaw nazwę jakiegoś wyrafinowanego dania>.

0

XD hehe. WY TEGO NIE UMIECIE XD aaahahaha. To trzeba było tak od razu. Okej. Nie będę wam dawał powodów do zaśmiecania serwera, ;). W takim razie, jak nie ma tu nikogo mądrego, będę musiał to obczaić z kolegą, jak wróci do Polski. Dzięki za NIC

1

Kontynuując post od @Patryk27 ...
Kanapkę kroić to możesz sobie sam w parę minut się nauczyć.
Natomiast do wyrafinowanego dania to trzeba jakieś kursy przynajmniej pobieżnie przejrzeć.

2
Xenidius napisał(a):

Dzięki za NIC

To smutne, iż nie rozumiesz, że po prostu postępujesz nieodpowiednio - nie możesz być wiecznie prowadzony za rączkę; dostałeś jasne porady: przeczytaj jakiś kurs do C++ - to, że Ty jesteś w gorącej wodzie kąpany i chcesz mieć wszystko ot tak to już nie nasz problem.
Jak chcesz, mogę Ci wykonać jakąś fajną analogię do tego Twojego zachowania - zauważyłem, że w ten sposób ludzie częściej pojmują, co robią nie tak.

2

Nie ma co karmić trolla.

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