• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Programowanie obiektowe - przestrzenie nazw

42 Warsaw Coding Academy
0 głosów
138 wizyt
pytanie zadane 22 listopada 2023 w C i C++ przez hutsalo1998 Użytkownik (540 p.)

Staram się zrealizować program, który jest tutaj:

https://www.youtube.com/watch?v=x0rQz_nQPjE&t=984s

ale dostaje informacje o błędzie. Tutaj jest kod:

#include <iostream>

using namespace std;

namespace p2D
{
    class wektor;
    class punkt;
    class trojkat;

    ostream& operator<<(ostream& cout, const punkt& p);
    ostream& operator<<(ostream& cout, const trojkat& t);
}

namespace p3D
{
    class wektor;
    class punkt;
    class trojkat;

    ostream& operator<<(ostream& cout, const punkt& p);
    ostream& operator<<(ostream& cout, const trojkat& t);
}

class p2D::punkt
{
    friend class wektor;
    friend ostream& operator << (ostream& cout, const punkt& p);
    double x, y;
public:
    punkt(double x0 = 0., double y0 = 0.): x(x0), y(y0) {}
};

ostream& p2D::operator<<(ostream& cout, const punkt& p)
{
    cout << "(" << p.x << ", " << p.y << ")";
    return cout;
}

class p2D::wektor
{
    friend class trojkat;
    double wx, wy;
public:
    wektor(punkt p1 = punkt(), punkt p2 = punkt()): wx(p2.x - p1.x), wy(p2.y - p1.y){}
};

class p2D::trojkat
{
    friend ostream& operator<<(ostream&, const trojkat&);
    punkt p1, p2, p3;
public:
    trojkat(punkt p01 = punkt(), punkt p02 = punkt(), punkt p03 = punkt()): p1(p01), p2(p02), p3(p03) {};
    double pole();
};

double p2D::trojkat::pole(){
    wektor w1(p1, p2);
    wektor w2(p1, p3);
    return 0.5 * abs(w1.wx * w2.wy - w2.wx * w1.wy);
}

ostream& p2D::operator << (ostream& cout, const trojkat& t){
    cout << "(" << t.p1 << "-" << t.p2 << "-" << t.p3;
    return cout;
}





class p3D::punkt
{
    friend class wektor;
    friend ostream& operator << (ostream& cout, const punkt& p);
    double x, y, z;
public:
    punkt(double x0 = 0., double y0 = 0., double z0 = 0.): x(x0), y(y0), z(z0) {}
};

ostream& p3D::operator<<(ostream& cout, const punkt& p)
{
    cout << "(" << p.x << ", " << p.y << ", " << p.z << ")";
    return cout;
}

class p3D::wektor
{
    friend class trojkat;
    double wx, wy, wz;
public:
    wektor(double wx0 = 0., double wy0 = 0., double wz0 = 0.): wx(wx0), wy(wy0), wz(wz0){}
    wektor(punkt p1 = punkt(), punkt p2 = punkt()): wx(p2.x - p1.x), wy(p2.y - p1.y), wz(p2.z - p1.z){}
};

class p3D::trojkat
{
    friend ostream& operator<<(ostream&, const trojkat&);
    punkt p1, p2, p3;
public:
    trojkat(punkt p01 = punkt(), punkt p02 = punkt(), punkt p03 = punkt()): p1(p01), p2(p02), p3(p03) {};
    double pole();
};

double p3D::trojkat::pole(){
    wektor w1(p1, p2);
    wektor w2(p1, p3);
    wektor res((w1.wy * w2.wz - w2.wy * w1.wz),
                (w1.wx * w2.wz - w2.wx * w1.wz),
                (w1.wx * w2.wy - w2.wx * w1.wy));
    return 0.5 * sqrt(res.wx * res.wx + res.wy * res.wy + res.wz * res.wz);
}

ostream& p3D::operator << (ostream& cout, const trojkat& t){
    cout << "(" << t.p1 << "-" << t.p2 << "-" << t.p3;
    return cout;
}




int main()
{
    p2D::punkt p1, p2(1.), p3(1., 1.);
    p2D::trojkat t2D(p1, p2, p3);
    cout << "Trojkat: " << t2D << ", pole: "
        << t2D.pole() << endl;
    return 0;
}

a tutaj informacja o błędzie

1 odpowiedź

+1 głos
odpowiedź 22 listopada 2023 przez adrian17 Mentor (353,220 p.)
wybrane 22 listopada 2023 przez hutsalo1998
 
Najlepsza
Na moje oko, to po prostu zapomniałeś o nagłówku <cmath>?

Podobne pytania

0 głosów
2 odpowiedzi 1,035 wizyt
pytanie zadane 25 sierpnia 2016 w C i C++ przez m_rij_v Użytkownik (660 p.)
0 głosów
2 odpowiedzi 696 wizyt
pytanie zadane 7 września 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 146 wizyt
pytanie zadane 16 marca 2019 w C i C++ przez Michał_Warmuz Mądrala (5,830 p.)

93,382 zapytań

142,382 odpowiedzi

322,540 komentarzy

62,738 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...