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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
#1

Оператор this и обращение к членам класса - C++

13.09.2012, 21:10. Просмотров 1568. Ответов 2
Метки нет (Все метки)

строка 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;
    }
спасибо

а строка №18 вообще,что читать почерк докторов в районной поликлиники....нипанятна.
Объясните плз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 21:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оператор this и обращение к членам класса (C++):

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

Доступ к членам класса - C++
Объект класса не может получить доступ к своим переменным?

Доступ к членам класса - C++
Есть два класса: #include "stdafx.h" #include <iostream> using namespace std; class CPerson { /*закрытые члены*/ private:...

Доступ к private членам класса - C++
Почему при таком объявлении не работает оператор вывода, по идее он же объявлен как друг класса и должен иметь доступ к членам этого...

Инкрементация указателя по членам класса - C++
Вот такая задачка у меня попалась на тестировании: "Корректен ли данный код? Если да, то что будет выведено на экран? Аргументируйте свой...

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

2
John Prick
804 / 737 / 145
Регистрация: 27.07.2012
Сообщений: 2,108
Завершенные тесты: 3
13.09.2012, 21:40 #2
this - это указатель объекта на самого себя. В вашем примере его использование не обязательно.

Цитата Сообщение от RASHFor Посмотреть сообщение
строка this->b = new B; означает взять вдресс текущего объекта b и выделить под него память?так?
Не совсем. Взять указатель на B и создать объект типа b, выделив под него память в динамической области памяти.

Цитата Сообщение от RASHFor Посмотреть сообщение
а строка №18 вообще,что читать почерк докторов в районной поликлиники....нипанятна.
b указывает на объект типа B, поэтому к полям B нужно обращаться через оператор ->. this - это тоже указатель, но на текущий объект типа SomeClass. Поэтому обращение к полю k объекта, на который указывает b такое:
C++
1
this->b->k
w - это ссылка на SomeClass, поэтому обращаемся к его полю b через точку:
C++
1
w.b
, а к полю k опять же через ->
C++
1
w.b->k
1
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.09.2012, 14:30 #3
Цитата Сообщение от John Prick Посмотреть сообщение
Взять указатель на B и создать объект типа b, выделив под него память в динамической области памяти


Цитата Сообщение от RASHFor Посмотреть сообщение
строка this->b = new B; означает взять вдресс текущего объекта b и выделить под него память?так?
Нет. Здесь происходит следующее. Оператор new выделяет память под объект типа B и возвращает адрес начала выделенной области памяти. Этот адрес записывается в поле b того объекта, для которого был вызван метод, в котором эта конструкция написана.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2012, 14:30
Привет! Вот еще темы с ответами:

Не удается передать значение членам класса - C++
Доброе время суток, возникла проблема, при создании класса добавил функцию, с помощью которой я задаю значение переменных x,y и строки...

Доступ к закрытым членам класса(шаблона) - C++
Вопрос почему компилятор выдает ошибку в функции main? Ситуация следующая имеется шаблон (класс) элемента списка, реализован шаблон (класс)...

Доступ к закрытым членам базового класса - C++
помогите понять что я не так сделал ? #include <iostream> using namespace std; class A { int PrA1; public: int...

Доступ к членам одного класса с другого - C++
Есть три файла: A.cpp: #include "B.cpp" class AA { int A; public: AA(int a) { A = a;


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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