Russian Qt Forum

Программирование => С/C++ => Тема начата: Ovoshlook от Июль 31, 2010, 14:10



Название: Работа с глобальными переменными
Отправлено: Ovoshlook от Июль 31, 2010, 14:10
В общем нужна глобальная пиеременная. ДЕлаю все как в инструкции:

Создаю класс и описываю в нем глобальную переменную:

class Global
{
public:
    static int k;
};
 

Затем в фале *.срр, подключив свой класс "Global.h" обращаюсь к переменной


Global::k=0

Но выдается ошибка:

release/ctf.o:ctf.cpp.text+0x4a4): undefined reference to `Global::k'
release/ctf.o:ctf.cpp.text+0x4fe): undefined reference to `Global::k'
release/ctf.o:ctf.cpp.text+0x504): undefined reference to `Global::k'
release/ctf.o:ctf.cpp.text+0x5b3): undefined reference to `Global::k'
release/ctf.o:ctf.cpp.text+0x7ab): undefined reference to `Global::k'
collect2: ld returned 1 exit status

Почему?

Заранее спасибо за ответ.


Название: Re: Работа с глобальными переменными
Отправлено: crossly от Июль 31, 2010, 14:16
на код глянуть можно??


Название: Re: Работа с глобальными переменными
Отправлено: Ovoshlook от Июль 31, 2010, 14:19
Да. Конечно. Вот.

#include "ctf.h"
#include "Global.h"
#include "ui_ctf.h"
#include <QtGui>
#include <QWidget>



CTF::CTF(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::CTF)
{
    ui->setupUi(this);
    //----------------------------------------------------------------------------//
    Global::k=0;
    MainLayout=new QGridLayout;
    ui->centralWidget->setLayout(MainLayout);
    MainLayout->setMargin(40);
    MainLayout->setSpacing(40);
    MainLayout->addWidget(ui->label,1,1,2,3);
    MainLayout->addWidget(ui->CTB,3,1,1,1);
    MainLayout->addWidget(ui->ChTB,3,3,1,1);


Название: Re: Работа с глобальными переменными
Отправлено: crossly от Июль 31, 2010, 14:26
Код:
#include "ctf.h"
#include "Global.h"
#include "ui_ctf.h"
#include <QtGui>
#include <QWidget>

int  Global::k=0;

CTF::CTF(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::CTF)
{
    ui->setupUi(this);
    //----------------------------------------------------------------------------//
   
    MainLayout=new QGridLayout;
    ui->centralWidget->setLayout(MainLayout);
    MainLayout->setMargin(40);
    MainLayout->setSpacing(40);
    MainLayout->addWidget(ui->label,1,1,2,3);
    MainLayout->addWidget(ui->CTB,3,1,1,1);
    MainLayout->addWidget(ui->ChTB,3,3,1,1);


Название: Re: Работа с глобальными переменными
Отправлено: Ovoshlook от Июль 31, 2010, 14:30
Код:
#include "ctf.h"
#include "Global.h"
#include "ui_ctf.h"
#include <QtGui>
#include <QWidget>

int  Global::k=0;

CTF::CTF(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::CTF)
{

    ui->setupUi(this);
    //----------------------------------------------------------------------------//
   
    MainLayout=new QGridLayout;
    ui->centralWidget->setLayout(MainLayout);
    MainLayout->setMargin(40);
    MainLayout->setSpacing(40);
    MainLayout->addWidget(ui->label,1,1,2,3);
    MainLayout->addWidget(ui->CTB,3,1,1,1);
    MainLayout->addWidget(ui->ChTB,3,3,1,1);

 expected constructor, destructor, or type conversion before '=' token


Название: Re: Работа с глобальными переменными
Отправлено: crossly от Июль 31, 2010, 15:11
учим с++


Название: Re: Работа с глобальными переменными
Отправлено: Ovoshlook от Июль 31, 2010, 15:33
Сорри)) Забыл тип прописать)) все работает)) Спасибо большое))