void Kolo_ratunkowe::pol_na_pol(Pytanie & pyt)
{ if(d3==true)
{d3=false;
int losowa1=0;
for (int i=0;i<2;++i)
{
int losowe=(( std::rand() % 4) + 1 );
while(losowe==pyt.get_poprawna()||losowe==losowa1)
{
losowe=(( std::rand() % 4) + 1 );
}
switch(losowe)
{
case 1:
pyt.odpowiedza1="";//tak dziala gdy odpowiedza1 jest publiczna
//pyt.set_odpowiedz_a("");//tak program przestaje dzialac
break;
case 2:
pyt.odpowiedzb1="";//dziala gdy odpowiedzb1 publiczna
// pyt.set_odpowiedz_b("");//program przestaje dzialac
break;
case 3:
pyt.set_odpowiedz_c("");//a to odziwu dziala
break;
case 4:
pyt.set_odpowiedz_d("");//to tez
break;
}
losowa1=losowe;
}}
else{}
}
//A tu plik pytanie.h
#ifndef PYTANIE_H
#define PYTANIE_H
#include <iostream>
#include <String>
#include <fstream>
class Pytanie
{
public:
Pytanie(std::string tresc_pyt,std::string,std::string,std::string,std::string,int);
Pytanie();
std::string get_tresc_pytania();
std::string get_odpowiedz_a();
std::string get_odpowiedz_b();
std::string get_odpowiedz_c();
std::string get_odpowiedz_d();
void zablokuj_kolo(int nr);
std::string set_odpowiedz_a(std::string );
std::string set_odpowiedz_b(std::string);
std::string set_odpowiedz_c(std::string);
std::string set_odpowiedz_d(std::string);
bool sprawdz_poprawnosc_odpowiedzi(short);
bool wczytaj_pytanie(std::string,int ,int,int,int,int);
short get_poprawna();
virtual ~Pytanie();
protected:
private:
std::string tresc_pytania;
public:
std::string odpowiedza1;
std::string odpowiedzb1;
private:
std::string odpowiedzc,odpowiedzd;
short numer_poprawnej;
};
#endif // PYTANIE_H
Pytanie cpp
#include "Pytanie.h"
#include <fstream>
Pytanie::Pytanie(std::string tresc_pyt, std::string odpa,std::string odpb,std::string odpc,std::string odpd,int poprawna)
{
tresc_pytania=tresc_pyt;
odpowiedza1=odpa;
odpowiedzb1=odpb;
odpowiedzc=odpc;
odpowiedzd=odpd;
numer_poprawnej=poprawna;
}
Pytanie::Pytanie()
{
}
std::string Pytanie::set_odpowiedz_a(std::string x)
{
odpowiedza1=x;//to wywoluje blad w trakcie dzialania programu
}
std::string Pytanie::set_odpowiedz_b(std::string x)
{
odpowiedzb1=x;//to tez
}
std::string Pytanie::set_odpowiedz_c(std::string x)
{
odpowiedzc=x;//to dziala
}
std::string Pytanie::set_odpowiedz_d(std::string x)
{
odpowiedzd=x;//dziala
}
Pytanie::~Pytanie()
{
//dtor
}
std::string Pytanie::get_tresc_pytania()
{
return tresc_pytania;
}
std::string Pytanie::get_odpowiedz_a()
{
return odpowiedza1;
}
std::string Pytanie::get_odpowiedz_b()
{
return odpowiedzb1;
}
std::string Pytanie::get_odpowiedz_c()
{
return odpowiedzc;
}
std::string Pytanie::get_odpowiedz_d()
{
return odpowiedzd;
}
short Pytanie::get_poprawna()
{
return numer_poprawnej;
}
bool Pytanie::sprawdz_poprawnosc_odpowiedzi(short odp)
{
return odp==numer_poprawnej;
}
bool Pytanie::wczytaj_pytanie(std::string tr,int a,int b,int c,int d,int pop)
{
tresc_pytania=tr;
odpowiedza1=a;
odpowiedzb1=b;
odpowiedzc=c;
odpowiedzd=d;
numer_poprawnej=pop;
return true;
}
Czemu metody std::string set_odpowiedz_a(std::string );
std::string set_odpowiedz_b(std::string);
wywoluja blad a set_c i set_d dzialaja poprawnie ?