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

Ваш аккаунт

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

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

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

Непонятная ошибка Qtcreator

64K
19 марта 2011 года
cherish dkfefbie c
8 / / 19.03.2011
баловался с qt и столкнулся с непонятной мне ошибкой

error: cannot call member function `void GRAPH::assign(GRAPH)' without object


main.cpp
Код:
#include <QtCore/QCoreApplication>
#include "GRcl.cpp"
#include <iostream>
#include <vector>

int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);

    GRAPH G;

    GRAPH::assign(G);

    return 1;
}



GRcl.cpp

Код:
#include <vector>
#include <iostream.h>

class GRAPH {

    public:
    int ** War;


    void assign (class GRAPH G)
    {
        int N,CONvert,EWeight,i;
        cout << "type in number of verts"<< endl;
        cin>>N;
        for (i=0; i<N ; i++)
        {
            for ( ; ; )
            {
                cout << "Assign vert."<<i<<endl;
                cout << "connect to vert... (0 to finish)"<<endl;
                cin>>CONvert;
                if (CONvert==0) break;
                cout<< "Assign weight of edge"<<i<<"-"<<CONvert<<endl;
                cin>>EWeight;
                G.War[CONvert]=EWeight;
                cout<<" Edge "<<i<<"-"<<CONvert<<" created."<<endl;
             }
        }

      }
};


ошибка говорит что нет объекта при вызове функции GRAPH::assign();
но есть же он : GRAPH::assign(G)
в чем дело?
8.9K
19 марта 2011 года
Apach47
130 / / 14.06.2010
Попробуй создать .hpp файл, в который вынести объявление класса, а затем .hpp файлик подключить к main.cpp
397
19 марта 2011 года
SergPas
527 / / 03.02.2007
Ошибка-то как раз понятная.
Ты не создал объект типа GRAPH (точнее создал, но не вызвал его метод assign), метод assign() которого вызываешь; к тому же метод assign() не объявлен в классе как статический (с модификатором static). Отсюда и возникает ошибка. В данном случае создавать объект типа GRAPH и передавать методу assign() тот же объект крайне глупо, в этом случае лучше сделать метод assign статическим, тогда и объект создавать не надо и появится смысл передавать методу assign() объект типа GRAPH, либо вообще стоит пересмотреть назначение метода assign().
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог