Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разыменование 
:(
    Опции темы
Golovastik
Дата 3.3.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Когда мы создали пустой проект и скинули на форму к примеру Edit1;
В файле *.h мы увидели в паблишеде TEdit*Edit1;
Это означает указатель с именем Edit1 на Объект Edit1, правильно?
Затем написав, в обработчике события едита.
Код

Edit1->Text

Мы обратились к свойству Text объекта Edit1. Обращение произошло через указатель на объект Edit1;
Тоже самое можно сделать вот так:
Код

(*Edit1).Text

Почему я пробую сделать своё разыменование и уменя не выходит.

Прочитал в книге Архангельского на 36 стр,"Язык С++ в с++ Builder", что
операция разыменования даёт сам объект.
Вот попробовал написать, и не получил объект.
Код

class ob1{
public:
int a;
void f();
};

ob1 *ar;

(*ar).f();



Это сообщение отредактировал(а) Golovastik - 3.3.2010, 22:28
PM MAIL   Вверх
azesmcar
Дата 3.3.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Golovastik @  3.3.2010,  22:21 Найти цитируемый пост)
Вот попробовал написать, и не получил объект.

Как ты это понял?
PM   Вверх
Golovastik
Дата 3.3.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я создал указатель на объект класса. А затем хочу этот указатель, превратить в сам объект класса.
Сделать разыменование по словам Архангельского.

Это сообщение отредактировал(а) Golovastik - 3.3.2010, 22:30
PM MAIL   Вверх
azesmcar
Дата 3.3.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Golovastik @  3.3.2010,  22:29 Найти цитируемый пост)
Я создал указатель на объект класса. А затем хочу этот указатель, превратить в сам объект класса.
Сделать разыменование по словам Архангельского.

отлично, я понял чего ты хочешь, я спрашиваю с чего ты взял, что тебе это не удалось? С того, что программа вылетает, ну так это от того, что ты указатель забыл инициализировать и объект создать.

Код

class ob1{
public:
int a;
void f();
};
ob1 *ar = new ob1();
(*ar).f();


Добавлено через 26 секунд
и еще не забудь написать тело функции f()
PM   Вверх
Golovastik
Дата 3.3.2010, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так программа тоже не срабатывает: Этот код чисто для понятия.
Код
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
class ob1{
public:
int a;
int f();
};

int ob1::f()
{
int a = 1 + 1;
return  a;
}


//Динамически создаю объект, вначале он будет являтся не объект класса,
//обычн.дин.объектом после разымен.объектом класса
ob1 *ar = new ob1();
*ar = &a = 7; //указателю ar присваиваю адресс поля а в который заношу значение 7
(*ar).f();








Это сообщение отредактировал(а) Golovastik - 4.3.2010, 00:03
PM MAIL   Вверх
azesmcar
Дата 4.3.2010, 05:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Golovastik @  3.3.2010,  23:56 Найти цитируемый пост)
Так программа тоже не срабатывает: Этот код чисто для понятия.

почитай книгу по C++, желательно что нибудь для новичков, а потом только приступай к формам, то, что ты написал противоречит правилам C++ по всем параметрам, код не пишется "просто так", код должен выполняться функцией.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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