Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
#1

Обращение к функции через указатель - C++

09.09.2012, 16:20. Просмотров 423. Ответов 5
Метки нет (Все метки)

Добрый день.Объясните для незнающего след.код:в частности строку номер:6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class ListItem
{
public:
    void Append(ListItem *pItem)
    {
        pItem->m_pNext = this;
        m_pPrevious = pItem;
        m_pNext = NULL;
    }
private:
    ListItem *m_pNext;
    ListItem *m_pPrevious;
    int     m_data;
};
Я обращаюсь к m_pNext через укзатель pItem и присваиваю значение this.Так? Тогда почему не можно сделать просто m_pNext = this; ?
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 16:20     Обращение к функции через указатель
Посмотрите здесь:

Обращение к вектору полученному через указатель - C++
Всем привет, Появился вопрос по поводу обращения к вектору полученному через указатель. Выглядит так: Передаю адрес вектора в...

Обращение к перегруженному оператору () через указатель на объект - C++
Собственно, как? class MyClass { .. void operator() (int _i) { cout << "operator()" << _i << endl; } ...

массив классов, задание и обращение к элементам через указатель - C++
Доброе время суток!! Помогите новичку разобраться с классами! Очень надо как всегда:) Задан класс class A { int m; ...

Быстрее ли вывов функции, переданной через параметр шаблона, чем через простой указатель на функцию? - C++
Здравствуйте! Есть два варианта передачи некоторой переменной типа "указатель на функцию" в класс - через параметр шаблона и просто с...

Массив в функции через указатель - C++
Необходимо найти сумму всех чисел в массиве, причем через функцию. Вроде всё правильно делаю, но на вывод идет страшное 6-значное число....

Передать указатель функции через класс? - C++
Привет. typedef void ( *Callback )( float* pFloat ); void Func(Callback function) { // other code.. }

Вызов функции из массива, через указатель - C++
имею код #include <iostream> #include <vector> #include <utility> using namespace std; void Func() { cout<<"pFunc()"; } ...

Передача массива другой функции через указатель - C++
Сейчас я изучаю функции и выполняю упражнение по работе с массивом. Задача такая: занести числа в массив, сделать обратный порядок...

Вызов виртуальной функции через указатель на базовый класс - C++
Всем привет! Помогите пожалуйста разобраться с вызовом виртуальной функции в программе. В моей программе требуется организовать класс...

Работа с массивом структур в функции через указатель на этот массив - C++
Добрый вечер. Имеется следующая задача: "Разработайте программу, сохраняющую записи (порядковый номер ввода, число с плавающей точкой и...

Создание функции инициализации двумерного массива строк через указатель - C++
Здравствуйте,имеется двумерный массив: in_data_up=_T("00"); in_data_up=_T("01"); ...

Как вывести на экран переменную из функции, которой присваиваеться значение через указатель? - C++
Только начал изучать С++. И не могу понять, как вывести на экран переменную pdLocalVar из функции child(), которой присваивается значение в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
09.09.2012, 16:28     Обращение к функции через указатель #2
Как то название темы не связано с содержанием.

Цитата Сообщение от RASHFor Посмотреть сообщение
тогда почему не можно сделать просто m_pNext = this; ?
потому что операция
C++
1
m_pNext = this;
в действительности означает
C++
1
this->m_pNext = this;
а нужно сделать именно
C++
1
pItem->m_pNext = this;
т.е. это далеко не одно и тоже.
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
09.09.2012, 16:40  [ТС]     Обращение к функции через указатель #3
т.е строка
C++
1
 pItem->m_pNext = this;
означает pItem присваивается значение this ?
MAKAPOH
30 / 20 / 1
Регистрация: 08.09.2012
Сообщений: 77
09.09.2012, 17:10     Обращение к функции через указатель #4
Насколько мне известно, эта запись означает следующее:
Взять адрес текущего объекта ListItem (переменная this) и записать его в переменную m_pNext объекта ListItem, адрес которого находится в переменной pItem.
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
13.09.2012, 20:53  [ТС]     Обращение к функции через указатель #5
строка this->b = new B; означает взять вдресс текущего объекта b и выделить под него память?так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class B{
public:
    int k;
    B(){
        k = 0;
    }
};
 
class SomeClass{
public:
    B *b;
    SomeClass(){
        b = new B;
    }
    // Конструктор копирования.        
    SomeClass(const SomeClass & w){
        this->b = new B;
        this->b->k = w.b->k;
    }
спасибо

Добавлено через 1 минуту
а строка №18 вообще,что читать почерк докторов в районной поликлиники....нипанятна.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.09.2012, 21:09     Обращение к функции через указатель #6
C++
1
this->b = new B;
означает создать в куче объект класса В и присвоить его адрес указателю на класс В, коим является this->b
C++
1
this->b->k
обращение к полю k класса В через указатель на объект класса В
Yandex
Объявления
13.09.2012, 21:09     Обращение к функции через указатель
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru