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

Что такое This и с чем его едят - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с масивом http://www.cyberforum.ru/cpp-beginners/thread169850.html
Всем доброго времени суток! В общем вот задача: есть таблица с 4-мя полями,(номер, наименование, тип, кол-во) последнее заполнено целочисленными значениями. Табличка или вводится вручную или из...
C++ Вывод результата в дочернем потоке Имеется программа которая вычисляет три суммы для i, j, k. Программа разбита на два потока. Главный и дочерний. Нужно вывести результат вычислений в главном потоке. Посмотрите пожалуйста код,... http://www.cyberforum.ru/cpp-beginners/thread169843.html
C++ Недопустимые локальные определения функций
Вот почитал еще немного литературы и решил попробовать написать прогу. #include <iostream> #include <string.h> #include <iostream> int main(){ setlocale(LC_ALL,"Russian"); class Subd{...
Выделение памяти C++
Эта программа должна забрать у системы 10 МБ, но диспетчер задач показывает, что программа забирает 163 МБ. Почему ? #include<iostream> using namespace std; int main() { cin.get();...
C++ Переделать программу с использованием классов http://www.cyberforum.ru/cpp-beginners/thread169803.html
вообщем я решил перебить свою задачу и предыдущей моей темы под классы. оригинальная прога #include <iostream> #define maxn 1000 using namespace std; typedef struct { int dh,dt;
C++ Выяснить, входит ли цифра 3 в запись числа n2 Дано натуральное число n. Выяснить, входит ли цифра 3 в запись числа n2. Помогите написать программу подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
27.09.2010, 19:20
this - неявный параметр в методах. При вызове метода на каком-то объекте адрес этого объекта неявно передаётся в функцию, чтобы можно было ссылаться на этот самый объект. Прямое обращение к членам класса - это просто более удобный способ не писать this-> по всему тексту. Простейший пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MyClass{
public:
    void Foo() {a = 0;}
    void Bar() const {std::cout << a;}
private:
    int a;
};
 
void SomeFunc()
{
    MyClass c;
    c.Foo();
    c.Bar();
}
аналогичен такой записи:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct MyClass{
    int a;
};
 
void MyClass_Foo(MyClass * const This)
{
    This->a = 0;
}
 
void MyClass_Bar(const MyClass * const This)
{
    std::cout << This->a;
}
 
void SomeFunc()
{
    MyClass c;
    MyClass_Foo(&c);
    MyClass_Bar(&c);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru