Zapis przypominajacy jawne wywolanie konstruktora

0

Witam
Nie rozumiem zapisu: w.punkt(1) = punkt(0.5, 0.5); przypomina mi to jawne wywołanie konstruktora ale czy wtedy to nie powinno być w.punkt() = punkt(0.5,0.5); ta część mnie myli w.punkt(1) = punkt(0.5, 0.5);

class punkt {
    double x_, y_;

public:
    //konstruktory
    //metody odleglosc
};

class wielobok {
    unsigned rozmiar;
    punkt* wsk;

public:
    //konstruktory
    //metody obwod
}
 int main()
{
    wielobok w1(t, t+4);
    //cout << w1.obwod() << '\n';
    w.punkt(1) = Punkt(0.5, 0.5);
     return 0;
}
0

To u gory jest złe (przepraszam za posty pod soba)
Wrzuce caly kod niestety nie mam pojecia czym jest ta linijka** w1.Punkt(1) = punkt(0.5, 0.5);** Jakby ktos chociaz mogl mi przyblizyc czym ona jest .

 
#include <iostream>
#include <cmath>
using namespace std;

class punkt{
    double x_,y_;
public:
    punkt():x_(0),y_(0){}
    punkt(double x,double y):x_(x),y_(y){}
    const double& x()const{return x_;}
    double& x(){return x_;}
    const double& y()const{return y_;}
    double& y(){return y_;}
    const double odleglosc(const punkt& ob)const ;
};
    const double punkt::odleglosc(const punkt& ob)const{
        return sqrt((x_ - ob.x_)*(x_ - ob.x_)+(y_ - ob.y_)*(y_ - ob.y_));
    }
class wielobok{
    unsigned rozmiar;
    punkt* wsk;
public:
    wielobok():rozmiar(0),wsk(new punkt){}
    wielobok(punkt* pocz,punkt* koniec):rozmiar(koniec-pocz),wsk(rozmiar? new punkt[rozmiar]:0){
        for(unsigned i = 0 ; i < rozmiar ; i++)
        {
            wsk[i]=pocz[i];
        }
    }

    double obwod(){
        double suma = 0;
        for(unsigned i = 0 ; i < rozmiar ; i++)
        {
           suma += wsk[i].odleglosc(punkt());
        }
        return suma;

    }

};

int main()
{
    punkt p(2, 3);
    cout << p.x() << ' ' << p.y() << '\n';
    p.x() = 1;
    p.y() = 1;
    cout << p.x() << ' ' << p.y() << '\n';
    cout << p.odleglosc(punkt()) << '\n';
    punkt t[] = { punkt(0, 1), punkt(0, 0), punkt(1, 0), punkt(1, 1) };
    wielobok w1(t, t+4);
    cout << w1.obwod() << '\n';
    //w1.Punkt(1) = punkt(0.5, 0.5);
   /* cout << w1.obwod() << '\n';
    wielobok w2;
    w2.Punkty(t, t+3);
    cout << w2.obwod() << '\n';
    for (int i = 0; i < w2.ilosc(); ++i)
    cout << w2.Punkt(i).x() << ' ' << w2.Punkt(i).y() << '\n';*/
    return 0;
}

0

do pola Punkt obiektu w przypisujesz obiekt punkt stworzony poprzez konstruktor

1 użytkowników online, w tym zalogowanych: 0, gości: 1