Wpis z mikrobloga

#informatyka #programowanie

Przy komendzie osoba.push_back(Prostokat(a,b) wyskakuje błąd "brak odpowiedniego konstruktora do przekonwertowania elemntu "float" na "prostokat". Gdzie robię bład? ()

#include
#include
#include
#include
#include
#include
#include

using namespace std;
int n, i;
class Prostokat {
public:
float a;
float b;
float Pole() { return a * b; }
float Obowod() { return 2 * a + 2 * b; }
};
int main()
{
Prostokat* pr = new Prostokat();
vector < Prostokat > osoba;
cout << "Podaj wielkosc wektora" << endl;
cin >> n;
for (i = 0; i < n; i++) {

cout << "\n Podaj dane prostokata";
cout << "\n Podaj bok a";
float a;
cin >> pr->a;
cout << "\n Podaj bok b";
float b;
cin >> pr->b;
osoba.push_back(Prostokat(a,b));
}
for (int i = 0; i < osoba.size(); i++)
{
cout << endl;
cout << "Bok a: " << pr->a << endl;
cout << "Bok b: " << pr->b << endl;
cout << "Obwod: " << 2*(pr->a)+2*(pr->b)<< endl;
}
return 0;
}
  • 5
  • Odpowiedz
@Masxi: ewentualnie możesz włączyć C++20 w kompilatorze, bo tam już można inicializować struktury w taki sposób jak miałeś pierwotnie
  • Odpowiedz