оч. срочно. Ошибки в программе на C++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by vorona, 9 Dec 2010.

  1. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    PHP:

    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    #include <fstream.h>
    #include <stdlib.h>>

    #define g 9.81

    // Abstraktnuy klas

    class object
    {
    protected:
    double N;

    public:
    virtual void fileread()=0;
    virtual void calc()=0;
    virtual void filesave()=0;
    };

    // Pohidnuy klas

    class rozbryzkuvach:public object
    {
    public:
    double rogamaf_otvRmuSH;

    public:
    void fileread(char *s);
    void calc();
    void filesave(char *s);

    //konstruktor so spiskom inicializacii

    rozbryzkuvach (double ro_tmpdouble gama_tmpdouble f_otv_tmpdouble R_tmpdouble mu_tmpdouble S_tmpdouble H_tmp)
    {
    ro=ro_tmp;
    gama=gama_tmp;
    f_otv=f_otv_tmp;
    R=R_tmp;
    mu=mu_tmp;
    S=S_tmp;
    H=H_tmp;
    }


    //konstruktor kopirovanija

    rozbryzkuvach::rozbryzkuvach(const rozbryzkuvach d)
    {
    ro=d.ro;
    gama=d.gama;
    f_otv=d.f_otv;
    R=d.R;
    mu=d.mu;
    S=d.S;
    H=d.H;
    }

    //pustoi konstruktor

    rozbryzkuvach ()
    {
    }

    rozbryzkuvach&operator=(const rozbryzkuvach d);
    rozbryzkuvach&operator==(const rozbryzkuvach d);
    rozbryzkuvach&operator!=(const rozbryzkuvach d);
    rozbryzkuvach&operator<(const rozbryzkuvach d);
    rozbryzkuvach&operator<=(const rozbryzkuvach d);
    rozbryzkuvach&operator>(const rozbryzkuvach d);
    rozbryzkuvach&operator>=(const rozbryzkuvach d);

    };



    //schityvanie s faila

    void rozbryzkuvach::fileread(char *s)
    {
    ifstream ifs(s);

    if (!
    ifs)
       {
       
    cout<<"File "<<s<<" don't open.\n";
       exit(
    1);
        }
    ifs>>ro>>gama>>f_otv>>R>>mu>>S>>H;
    ifs.close();
    }

    //zapis' v fain

    void rozbryzkuvach::filesave(char *s)
    {
    ofstream ofs(s);
    ofs<<"N= "<<N<<"\n";
    ofs.close();
    }

    //razchet dannih

    void rozbryzkuvach::calc()
    {
    N=((2/3*M_PI*ro*(gama*gama)*f_otv*mu*pow(R,3))/g*S)*sqrt(pow((pow(gama,2)*pow(R,2))+(2*g*H),3));
    cout<<"N= "<<N<<endl;
    }

    rozbryzkuvach&rozbryzkuvach::operator==(const rozbryzkuvach d)
    {
    cout<<"operator ==";
    if (
    N==d.N)
    {
    cout<<"N=d.N";
    }else{
          
    cout<<"N!=d.N";
         }
    return *
    this;
    }

    rozbryzkuvach&rozbryzkuvach::operator != (const rozbryzkuvach d)
    {
    cout<<"operator <=";
    if (
    N<=d.N)
    {
    cout<<"N<=d.N";
    }else{
    cout<<"N!=d.N";
         }
    return *
    this;
    }

    rozbryzkuvach&rozbryzkuvach::operator < (const rozbryzkuvach d)
    {
    cout<<"operator <";
    if (
    N<d.N)
    {
    cout<<"N<d.N";
    }else{
          
    cout<<"N ne menshe d.N";
         }
    return *
    this;
    }

    rozbryzkuvach&rozbryzkuvach::operator <= (const rozbryzkuvach d)
    {
    cout<<"operator !=";
    if (
    N!=d.N)
       {
       
    cout<<"N!=d.N";
       }else{
             
    cout<<"N=d.N";
             }
    return *
    this;
    }

    rozbryzkuvach&rozbryzkuvach::operator > (const rozbryzkuvach d)
    {
    cout<<"operator >";
    if (
    N>d.N)
        {
        
    cout<<"N>d.N";
        }else{
              
    cout<<"N ne bolshe d.N";
             }
    return *
    this;
    }

    rozbryzkuvach&rozbryzkuvach::operator >= (const rozbryzkuvach d)
    {
    cout<<"operator >=";
    if (
    N>=d.N)
    {
    cout<<"N>=d.N";
    }else{
         
    cout<<"N ne bolshe i ne ravno d.N";
         }
    return *
    this;
    }

    void main()
    {
    clrscr();

    rozbryzkuvach z(10001002e-60.150.651e-40.3);

    object *obj=&z;
    obj->fileread("in.txt");
    obj->calc();
    obj->filesave("out.txt");

    rozbryzkuvach pusto;
    pusto=z;
    pusto==z;
    pusto!=z;
    pusto<z;
    pusto<=z;
    pusto>z;
    pusto>=z;

    rozbryzkuvach copy_z(z);


    getch();
    }


    :confused:
     
  2. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    http://upwap.ru/1168331 Скрин с ошибками

    187 строка: rozbryzkuvach z(1000, 100, 2e-6, 0.15, 0.65, 1e-4, 0.3);
     
  3. Vespen

    Vespen New Member

    Joined:
    9 Dec 2010
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    Твой класс object абстрактный. Т.к. Все методы чисто вируальные.
    Нельзя создать экземпляр класса (т.е. z) у абстрактного класса. Вот builder и ругается.