[C++] Problem z własną biblioteką

0

tak na wstępie używam Linuxa

Przy kompilacji z parametrem -Wall wyświetla mi tylko ostrzeżenia że zmianna liczba1 liczba2 są nie używane.
Przy zwykłej( bez -Wall) GIT.

Po uruchomieniu wyrzuca mi tylko napis tutaj jestem :

po prostu pomija funkcje z pliku zl.cc : void wypisz(int &liczba1, int &liczba2);

zl.cc :

#include <iostream> 
#include <cmath> 
#include "interfejs.h" 

using namespace std; 


/*początek głównej funkcji main*/ 
int main() 
{ 
int liczba1, liczba2;    //Deklaracja liczb które podał użytkownik 
    
    cout.width(30); 
    void wypisz(int &liczba1, int &liczba2); 
    cout<<"tutaj jestem :("; 
    
    
    
/*koniec funkcji main*/ 
return 0; 
}

interfejs.h :

#ifndef INTERFEJS_H 
#define INTERFEJS_H 
#include<iostream> 



void wypisz(int &liczba1, int &liczba2); 



#endif

is.cc

#include<iostream> 

using namespace std; 

void wypisz(int &liczba1, int &liczba2) 
{ 
short ile;        //pyta użytkownika czy chce sprawdzić jedną czy dwie liczby 
static bool liczba;     //zmienna przechowuje wartość null gdy użytkownik podał 1 
    
    cout<<"Podaj ile liczb chcesz sprawdzić (1-2) i naciśnij enter\n\n"; 
    cin>>ile; 
    /*sprawdzam jaką liczbe podał użytkownik. Gdy inna niż 1,2 wyświetlam błąd*/ 
    if((ile == 1) || (ile == 2)) 
    { 
        //podał 1 
        if(ile == 1) 
        { 
        
            cout<<"Podaj liczbe : "<<endl; 
            cin>>liczba1; 
            liczba = false; 
            
        } 
        //podał 2 
        else 
        { 
        
            cout<<"Podaj liczbe 1 : "<<endl; 
            cin>>liczba1; 
            cout<<"Podaj liczbe 2 : "<<endl; 
            cin>>liczba2; 
        
        } 
        /*koniec funkcji if dla wartość ile=1 lub ile=2*/ 
    
    
    } 
    else 
    { 
    
        cout<<"Przykro ale liczba jest po za zakresem\n\n\n PS: NAUCZ SIĘ CZYTAĆ"<<endl; 
    
    } 

return ;        

Dziękuje za Pomoc z góry :-) [soczek]

0

Nie wykonuje sie funkcja wypisz, poniewaz w main zamiast wywolania funkcji dales jej prototyp.
Poza tym moim zdaniem powinien prototyp wygladac tak:
void wypisz(int *liczba1, int *liczba2);
albo po prostu:
void wypisz(int *, int *);
a wywolanie:
wypisz(&liczba1, &liczba2);
Napisz czy pomoglo :) Poza tym moglbys ogarnac podstawy przesylania arumentow funkcji przez referencje oraz wskazniki ogolnie, bo z tego co widze to cienko z tym u Ciebie.

0

wywolanie tej funkcji powinno wygladać tak:

wypisz(liczba1, liczba2);
0

Nie powinno byc tak jesli chce przesylac argumenty przez referencje, ale jesli nie czyli pod Twoje wywolanie to definicja funkcji powinna wygladac tak:

void wypisz(int liczba1, int liczba2)  /* ta linijka to takze prototyp */
{
/* cialo funkcji */
}

ale jesli ma:

void wypisz(int &liczba1, int &liczba2)
{
/* funkcja */
}

to mi sie wydaje, ze nie bardzo pasuje to co napisales.

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