Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что не так с вызовом функции с класса в int main() ?

89K
30 ноября 2014 года
Ніка Баранова
1 / / 23.11.2014
это код часов с маятником не полный, помогите что не так с вызовом функции класса ? как правильно его будет вызвать в данном случае...

    #include <graphics.h>
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <dos.h>
    #include <time.h>
    #include <iostream>
    #include <stdlib.h>


    #define PATHTODRIVER "c:\TC\BGI"
    #define G 0.0174532


    class clock{
    int x0,y0;//êîîðäèíàòû ïî÷àòêó âåêòîðà
    int x1,y1;// êîîðä êîíöà âåêòîðà
    int h;
    int d;
    int s;
    int m;
    int ri;
    int am;
    int as;
    int ax;
    float pi;
    float xx;
    float yy;
    float x;
    float y;
    float dlinapodvesa;
    float A;
    float w;
    float radius;
    float a;
    float u;
    float t;
    float l;
    //float const pi=355/113;// e=2721/1001;
    //float xx, yy, x, y, dlinapodvesa=70, A=150, w=300, radius=15, a;
    //float u=-7, t=0, l=100;


    //int x2,y2;
    public:
    // konstryktor copi
    clock(int getx0,int gety0,int getx1,int gety1,int geth,int getd, int getm, int gets, int getri, int getas, int getam,int getax){
    x0 = getx0 = 0;
    y0 = gety0 = 0;
    x1 = getx1 = 0;
    y1 = gety1 = 0;
    h = geth = 0;
    d = getd = 0;
    m = getm = 0;
    s = gets = 0;
    ri = getri = 0;
    as = getas = 0;
    am = getam = 0;
    ax = getax = 0;
    // x2 = getx2; // y2 = gety2;
    }
    // konstrucor obnylenia
    /*clock(){
    getx0=0;
    gety0=0;
    getd=0;
    gets=0;
    getm=0;
    getri=0;
    getas=0;
    getam=0;
    getax=0;
    }
    */
    void vector(int a,int l)
    {
    x1 = x0 + 1 * cos(a * G);
    y1 = y0 - 1 * sin(a * G);
    lineto(x1,y1);
    }

    void mayatnick(){
    //float const pi=355/113;// e=2721/1001;
    //float xx, yy, x, y,
    dlinapodvesa=70; A=150; w=300; radius=15; a;
    u=-7; t=0; l=100;
    pi=(355/113);

    //cleardevice();
    //setbkcolor(9);
    setcolor(YELLOW);
    setactivepage(1);
    //line(getmaxx()/2-dlinapodvesa,1,getmaxx()/2+dlinapodvesa,1);
    xx=80;
    yy=140;
    x=xx+l*sin(u);
    y=yy+sqrt(l*l-(x-xx)*(x-xx));
    A=(l*sin(u))/cos(w*t);

    setfillstyle(SOLID_FILL,0);
    while(!kbhit()){

    setvisualpage(0);
    setactivepage(1);
    cleardevice();
    setcolor(YELLOW);
    line(xx,yy,x,y);
    line(50,140,110,140);
    setfillstyle(5,BLACK);
    fillellipse(x-1,y-1,radius,radius*(getmaxx()/getmaxy()));
    setvisualpage(1);

    delay(0.5);
    setactivepage(1);
    cleardevice();

    x=xx+A*cos(w*t);//x=x0+A*pow(e,-2.1*t)*cos(w*t);
    y=(yy+sqrt(l*l-(x-xx)*(x-xx)));
    t+=0.0001;

    setcolor(YELLOW);
    // line(xx,yy,x,y);
    //line(60,230,160,230);
    line(xx,yy,x,y);
    line(50,140,110,140);

    setfillstyle(1,BLACK);
    fillellipse(x-1,y-1,radius,radius*(getmaxx()/getmaxy()));

    }
    }
    void clock1()
    { mayatnick();
    //int h=0;
    x0 = 80;//êîîðä öåíòðà âåêòîðà
    y0 = 80;//êîîðä öåíòðà âåêòîðà
    d = 55;//äèàìåòð
    //int s = 0;//âðåìÿ êîëâî ñåê//int m = 0;// âðåìÿ êîëâî ìèí//int ri = 0;
    as = 90;//óãëû íàêëîíåíèå ñòðåëîê
    am = 90;
    ax =90;
    circle(x0,y0,d+5);
    moveto(x0,y0);
    setcolor(RED);
    vector(ax,d-20);


    moveto(x0,y0);
    setcolor(YELLOW);
    vector(as,d);

    moveto(x0,y0);
    setcolor(GREEN);
    vector(am,d-10);

    delay(1);//1000

    // steretb strelki
    setcolor(BLACK);
    //÷àñîâóþ
    moveto(x0,y0);
    vector(ax,d-20);

    //secyndnyy

    moveto(x0,y0);
    vector(as,d);
    //min
    moveto(x0,y0);
    vector(am,d-10);
    ri++;
    printf(" %d n",ri);
    if(ri>209){s++;ri=0;
    //ri-=1;
    if(s>59)
    {
    m++;
    s=0;
    am-=6;// shag dvijenia min v gradusah
    if(m>59)
    {//ri++;
    ax-=30;
    m=0;
    // h++;
    }


    }
    as-=6;
    if(as<0)as=354;
    //if(ri<2)
    }

    ////
    //if(h=1){h=0;//delay(0.5);
    //line(100,50,500,50);
    //cleardevice();}


    // if(am<0)am=354;
    // };//while( getch()!=49);// ojidania // áîëüå ðàçîáðàòñÿ â ýòîé ñòðîêå
    //}
    }
    ~clock();
    };


    ////

    int main()
    {
    int gd = DETECT;// äðàéâåð
    int gmode, i;//èìÿ ðåæèìà
    int err;//èìÿ îøèáêè
    initgraph(&gd, &gmode, "c:\TC\BGI\");// ôóíêöèÿ äëÿ ïîäêëþ÷åíèÿ äðàéâåðà ãðàô ðåæèìà
    err = graphresult();
    if(err!=grOk)//îøèáêà ïîäêëþ÷åíèÿ
    {
    printf("Graphics errors: %sn");
    printf("Graphics error: %sn", grapherrormsg(err));
    getch();
    exit(1);
    }
    setcolor(15);
    line(81,20,81,35); //verhny
    line(80,140,80,125);// nuz
    line(20,80,35,80); //liva
    line(140,81,125,81);// prava
    clock1(); // âûçîâ ôóíêöèè êëàññà clock1

    getch();
    closegraph();
    return 0;
    }
1
02 декабря 2014 года
kot_
7.3K / / 20.01.2000
оформите нормально код и приведите ошибку
88K
02 декабря 2014 года
Roleri
9 / / 02.12.2014
Нестатическая функция класса должна вызываться для конкретного объекта:
 
Код:
clock myclock;
myclock.clock1();
И раскомментируйте в коде класса конструктор по умолчанию.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог