Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаленный доступ к члену класса 
V
    Опции темы
kuvshinka
Дата 31.3.2010, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



Есть 2 класса – klass2 и klass3: каким образом можно задать параметр (my_param) класса klass2 из класса klass3? см. программку…
в чем же у меня ошибка? почему, вроде задавая в klass3 параметр my_param класса klass2, он "не запоминается" в klass2 (равен 0 независисмо от того, что я задал на форме3 - классе klass3)? как это исправить? smile    ПОДСКАЖИТЕ пожалуйста.... smile 


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  projjekt.rar 19,76 Kb
PM MAIL   Вверх
ИванМ
Дата 31.3.2010, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



не нравится нам файлы качать. выкладывай код сюда
PM MAIL   Вверх
mes
Дата 31.3.2010, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(ИванМ @  31.3.2010,  21:01 Найти цитируемый пост)
выкладывай код сюда 

и не забудьте сократить все лишнее..

Цитата(kuvshinka @  31.3.2010,  20:26 Найти цитируемый пост)
он "не запоминается" в klass2 

код не видел, но ориентируясь на Ваше высказывание, чувствуется, что то, что скрывается за словом class для Вас темный лес. 
С таким подходом далеко не уедете..Почитайте для начала, чем отличается класс от объекта.. 
Если в одном объекте класса запоминаете что то, то это не означает что в другом объекте будет что то запомнено smile




Это сообщение отредактировал(а) mes - 31.3.2010, 22:15


--------------------
PM MAIL WWW   Вверх
smalcom
Дата 31.3.2010, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



Скачал, собрал, запустил. Все работает как надо.

зы. ТСу учить С++, английский(хотябы базу)
ззы. поколение делфи


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
kuvshinka
Дата 1.4.2010, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



klass3:

Код
хидер:
#include "klass2.h"
class Klass2;

class klass3 : public QWidget, public Ui::Form3
{
      ...
         Klass2 *exz_kl2;
      ... 
};


Код
cpp-шник:
#include "klass3.h"

klass3::klass3(QWidget *parent) :   QWidget(parent)
{
   exz_kl2 = new Klass2();
}


void klass3::on_pushButton_clicked()
{
    exz_kl2->my_param=lineEdit->text().toInt() ;                             // задаю, допустим, 1
                    
    editt_2->setText(QString::number(exz_kl2->my_param));         // ответ = 1
}




klass2:
Код
хидер:
class Klass2 : public QWidget, public Ui::form2
{
    public:
         Klass2(QWidget *parent = 0);
         int my_param;

     public slots:
         void changeVis();   
};


Код
cpp-шник
...
                 
void Klass2::changeVis()
{

        edit2->setText(QString::number(my_param));       // ответ всегда  = 0........... ????

}


MainWindow.cpp:
Код

    Klass2 *kl2=new Klass2();
    klass3 *kl3=new klass3(frame_3);
    connect(kl3->pushButton,SIGNAL(clicked()),kl2,SLOT(changeVis()));



smalcom:
кто такой  ТС?
Вы говорите, что у Вас правильно "Все работает как надо"? именно программа  projjekt.rar, приведенная мною выше? не может этого быть... 
Да, я действительно после делфей пытаюсь изучить С++, поэтому просьба помочь мне исправить данный пример, чтобы он верно все "передавал" из класса в класс...
очень нужно...помогите пож-та...







PM MAIL   Вверх
smalcom
Дата 1.4.2010, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



Даю подсказку

mainwindow.cpp
Код

kl2=new Klass2();


klass3.cpp
Код

exz_kl2 = new Klass2();


mes, +1


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
kuvshinka
Дата 1.4.2010, 05:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



smalcom: ммм....видимо, надо через один, а именно kl2, экземпляр  вызывать все члены и методы данного класса klass2?
PM MAIL   Вверх
kuvshinka
Дата 1.4.2010, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



Теперь пробую так:
Код

                                                        klass3-хидер
#include "mainwindow.h"
class MainWindow;

class klass3 : public QWidget, public Ui::Form3
{
    public:
         klass3(QWidget *parent = 0);
             MainWindow *exz_main;
public slots:
    void on_pushButton_clicked();
};


                    klass3-сpp-шник
klass3::klass3(QWidget *parent) :   QWidget(parent)
{
  // exz_main = new MainWindow(this);    - если это раскомментировать, то программа 
не запускается - типа висит на запуске…[U][/U]

}


void klass3::on_pushButton_clicked()
{
        exz_main = new MainWindow(this);

        exz_main->kl2->my_param=lineEdit->text().toInt() ;

        editt_2->setText(QString::number(exz_main->kl2->my_param));
}


Классы klass2.*, MainWindow.* - без изменений (см. мое сообщение выше)


Эффект тот же – то есть никакого…Теперь что не так? Подскажите пож-та готовое решение этой проблемки – по решенному мне будет гораздо быстрее и проще понять эту ошибку…










Это сообщение отредактировал(а) kuvshinka - 1.4.2010, 08:45
PM MAIL   Вверх
mes
Дата 1.4.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(kuvshinka @  1.4.2010,  00:00 Найти цитируемый пост)
кто такой  ТС?

ТС это топик-стартер, т.е. в этой теме тс - это некая kuvshinka
smile

Цитата(kuvshinka @  1.4.2010,  07:44 Найти цитируемый пост)
Подскажите пож-та готовое решение этой проблемки

за готовым надо было идти в центр помощи.. 
А в этом разделе обычно страются, чтоб человек сам дошел до решения smile ну а путь к этому Вам подсказали :

Цитата(mes @  31.3.2010,  21:14 Найти цитируемый пост)
.Почитайте для начала, чем отличается класс от объекта..

пока это не осознаете дальше двигаться бессмысленно.

Это сообщение отредактировал(а) mes - 1.4.2010, 09:03


--------------------
PM MAIL WWW   Вверх
Леопольд
Дата 1.4.2010, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(mes @  1.4.2010,  08:58 Найти цитируемый пост)
Почитайте для начала, чем отличается класс от объекта..
Исходить можно из того, что класс это тип объекта. Т.е. int, char, void* и т.д., это встроенные типы, всё что class, это user-defined типы. 
Английский, действительно, нужен. Для быстрого освоения английского могу посоветовать Драгункина. У него своя методика, сильно отличающаяся от общепринятой, и при этом гораздо логичнее, что помогает запоминать.


Это сообщение отредактировал(а) Леопольд - 1.4.2010, 13:18


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
kuvshinka
Дата 1.4.2010, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



а где здесь "центр помощи"? smile 
PM MAIL   Вверх
mes
Дата 1.4.2010, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(kuvshinka @  1.4.2010,  12:25 Найти цитируемый пост)
а где здесь "центр помощи"? smile  

 даже это поискать лень ? smile 
ловите : http://forum.vingrad.ru/forum/Vingrad-help-center.html


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.