Lista inicjalizacyjna - no matching function for call to ...
Ostatnio zmodyfikowano 2016-06-02 21:59
Lich555 Temat założony przez niniejszego użytkownika |
Lista inicjalizacyjna - no matching function for call to ... » 2016-06-02 21:09:44 Witam. Stworzyłem klasę Point. Później stworzyłem klasę Circle dziedziczącą z Point, a następnie klasę Sphere dziedziczącą z klasy Circle. Przy tworzeniu listy inicjalizacyjnej w klasie Sphere to wyskakuje mi taki błąd: no matching function for call to 'Circle::Circle(std::__cxx11::string&, float&, float&, float&) Kod programu: #include <iostream> #define _USE_MATH_DEFINES #include <math.h>
using namespace std;
class Point { float x, y; string name; public: void display() { cout << name << "(" << x << "," << y << ")" << endl; } Point( string n = "S", float a = 0, float b = 0 ) { name = n; x = a; y = b; } };
class Circle : public Point { string name; protected: float r; public: void display() { cout << "Circle name is: " << name << endl; cout << "Circle center: " << endl; Point::display(); cout << "Radius: " << r << endl; cout << "Circle area: " << M_PI * r * r << endl; } Circle( string nc = "Circle", string np = "S", float a = 0, float b = 0, float cr = 1 ) : Point( np, a, b ) { name = nc; r = cr; } };
class Sphere : public Circle { string name; public: void display() { Circle::display(); cout << "Sphere volume: " << 4 / 3 * M_PI * r * r * r; } Sphere( string ns = "Sphere", string np = "S", float a = 0, float b = 0, float cr = 1 ) : Circle( np, a, b, cr ) <----Tutaj jest blad !!! { name = ns; } };
int main() { Sphere s1; s1.display(); }
|
|
pekfos |
» 2016-06-02 21:13:13 Circle() przyjmuje 2 stringi, a nie 1. |
|
Monika90 |
» 2016-06-02 21:13:28 Circle( string nc = "Circle", string np = "S", float a = 0, float b = 0, float cr = 1 )
Konstruktor oczekuje dwóch stringów : Circle( np, a, b, cr ) <----Tutaj jest blad !!!
A tu przekazujesz mu tylko jeden. stworzyłem klasę Circle dziedziczącą z Point, a następnie klasę Sphere dziedziczącą z klasy Circle
|
Dziwny pomysł. |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2016-06-02 21:59:07 Dziękuję za odpowiedzi. @Monika90 Dziwny, nie dziwny. Jest to zadanie z kursu Pana Zelenta (Obiektowy, odcinek 5) mające na celu bardziej zaprezentować pewne możliwości niż być funkcjonalnym, efektywnym programem. |
|
« 1 » |