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

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

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

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

09.09.2012, 16:20. Просмотров 436. Ответов 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; ?
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 16:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обращение к функции через указатель (C++):

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

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

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

Обращение к методам класса через указатель на экземпляр класса - C++
Добрый день. Не могу осилить проблему: Описан абстрактный класс. Описаны наследники этого класса уже без абстрактности. Описан...

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

Вызов родовой функции (нужно передать массив в качестве аргумента функции через указатель) - C++
#include <iostream> using namespace std; template <class T1> class mas { public: T1 n; T1 a; void input() ...

5
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,275
Записей в блоге: 2
Завершенные тесты: 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;
т.е. это далеко не одно и тоже.
1
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
09.09.2012, 16:40  [ТС] #3
т.е строка
C++
1
 pItem->m_pNext = this;
означает pItem присваивается значение this ?
0
MAKAPOH
30 / 20 / 1
Регистрация: 08.09.2012
Сообщений: 77
09.09.2012, 17:10 #4
Насколько мне известно, эта запись означает следующее:
Взять адрес текущего объекта ListItem (переменная this) и записать его в переменную m_pNext объекта ListItem, адрес которого находится в переменной pItem.
1
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 вообще,что читать почерк докторов в районной поликлиники....нипанятна.
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 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 класса В через указатель на объект класса В
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2012, 21:09
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
13.09.2012, 21:09
Ответ Создать тему
Опции темы

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