Witam,
w programie dalej jest kilka niepotrzebnych konstrukcji ale już powinien działać prawidłowo. PS Sprawdzaj jak wklejasz kod. Zauważ że wkleiłeś razem z kodem linijki odpowiadające wierszom programu. Może to odstraszyć potencjalnych pomagających.
#include <iostream>
class Digits
{
private:
int digit, positive_digits = 0, negative_digits = 0;
public:
Digits() { };
Digits(int);
friend void check_digit(char, int);
};
Digits::Digits(int value)
{
std::cout << "Podaj 10cyfr\n";
for(int i=0; i<10; i++) // incrementujesz od 0 więc jako warunek użyj znaku '<' aby bylo 10 wywołań
{
std::cin >> digit;
if(digit > 0) positive_digits++;
if(digit < 0) negative_digits++;
}
}
void check_digit(char si, int type)
{
//unikaj stosowania polskich znaków jak ł/ó/ą/ę w stringach
Digits obiekt(type);
std::cout << "Wybierz wartosci, ktore chcesz zobaczyc (p)dodatnie, (n)ujemne: ";
std::cin >> si;
if(si == 'p') std::cout << "Liczba wartosci dodatnich wynosi: " << obiekt.positive_digits << std::endl;
if(si == 'n') std::cout << "Liczba wartosci ujemnych wynosi: " << obiekt.negative_digits << std::endl;
}
int main()
{
char sign = 'p'; //przykładowa wartość i tak się zmieni w funkcji check_digit
int digit_value = 5; // przykładowa wartość i tak się zmieni w funkcji check_digit
check_digit(sign, digit_value);
}