Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 17:05   #1
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию Для public переменной класса присвоить адрес ячеек из внешней переменной

Помогите, не могу сообразить как корректно реализовать присваивание значения для внешней переменной из класса.
- есть переменная GM, она QString (в принципе не важно, можно и char), у неё значение ""
- есть класс 1, у него есть указатель M на тип QString внешний, т.е. к нему можно обращаться через public
- есть класс 2, у него тоже есть public указатель M на QString
- т.е. я хочу в какой-нибудь функции класса 1 или 2 присваивать к переменной M значение и оно будет тут-же присвоено значению GM
(я так понимаю, тут нужно, чтобы GM и M ссылались на одну и ту-же ячейку памяти)
Вот как это должно быть в теории

main.cpp
Код:
int main(int argc, char *argv[])
{	
	QString GM = "";
	
	class1 obj(NULL,<каким образом мне передать адрес переменной? например через QString &peremennaja, так?>);
	obj.auth(); //и тут выполняется слот из класса 1, переменной класса присваивается значение, которое так-же оказывается значением для переменной GM
	cout << GM //и мне тут должны напечатать "бум"

	return 0;
}
class1.h
Код:
{
public:
    class1(QWidget *parent, <как тут определить передачу ссылки? например QString &peremennaja ?!>);
	QString <как мне тут объявить переменную M ? Как указатель? Или как обычную переменную?>;

public slots:
    void auth();
}
class1.cpp
Код:
{
Dialog::class1(QWidget *parent, <как тут определить передачу ссылки? например QString &peremennaja ?!>) :QDialog(parent),ui(new Ui::Dialog)
{
	//здесь происходит и нициализация класса, выполняется конструктор, тут мы должны сделать так, чтобы M стала указывать на значение ячейки переменной GM
    &M = peremennaja; //тут как бы нужно сказать, что ссылка M должна стать той, которая записана в peremennaja (в функции ведь мы ссылку переменной принимаем)
}

void Dialog::auth()
{
	//вот тут я хочу к открытой переменной M класса 1 присвоить допустим "бум" и чтобы это же значение было в переменной GM, которая в main.cpp 
	//потому-что M как бы ссылается на те же ячейки памяти, что и GM
	M = "бум";
}
}
Подскажите, как это правильно описывается?

Последний раз редактировалось _KUL; 27.05.2012 в 17:08.
_KUL вне форума Ответить с цитированием
Старый 27.05.2012, 18:58   #2
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

уже всё перепробовал, никак не работает, либо параметры не совпадает, не кочет компилироваться, либо в кёрнел паник падает при запуске ... помогите пожалуйста
_KUL вне форума Ответить с цитированием
Старый 28.05.2012, 12:04   #3
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

Странно, решение оказалось очень простым, просто нужно было переменные за main.cpp описать и всё классно инициализировалось. Наверно студенты не знают, а умные дядьки сюдя просто очень редко заходят

Потомкам:
main.cpp
Код:
int GM = "";
p = &GM;
*p = 0;
int main(int argc, char *argv[])
{	
	class1 obj(NULL,p);
	obj.auth(); 
	cout << GM

	return 0;
}
class1.h
Код:
{
public:
    class1(QWidget *parent, int *N);
	int *M;

public slots:
    void auth();
}
class1.cpp
Код:
{
Dialog::class1(QWidget *parent, *N) :QDialog(parent),ui(new Ui::Dialog)
{
	this->M = N;
}

void Dialog::auth()
{
	M = "бум";
}
}
_KUL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с внешней переменной(extern) djetx Общие вопросы C/C++ 3 16.12.2011 22:54
ак переменной а присвоить значение текста amator_roma Общие вопросы C/C++ 5 14.06.2011 19:33
присвоить значение формы переменной bicdibus Общие вопросы Delphi 4 19.03.2010 17:22
TMemoryStream присвоить строковой переменной inndim Общие вопросы Delphi 3 06.05.2009 11:36
Переменной присвоить имя файла komar73 Microsoft Office Excel 4 26.03.2009 15:20