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

Что означает конструкция int(cls::*), если cls - это класс ? - C++

Восстановить пароль Регистрация
 
cyberguz
6 / 6 / 0
Регистрация: 01.12.2010
Сообщений: 105
26.01.2012, 12:56     Что означает конструкция int(cls::*), если cls - это класс ? #1
Пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <type_traits>
 
int main() {
    class cls {};
    std::cout << (std::is_member_object_pointer<int(cls::*)>::value
                     ? "T is member object pointer"
                     : "T is not a member object pointer") << '\n';
    std::cout << (std::is_member_object_pointer<int(cls::*)()>::value
                     ? "T is member object pointer"
                     : "T is not a member object pointer") << '\n';
}
отсюда: http://en.cppreference.com/w/cpp/typ...object_pointer

Что за странная конструкция int(cls::*) ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 12:56     Что означает конструкция int(cls::*), если cls - это класс ?
Посмотрите здесь:

C++ system("cls"); как по другому?
Как запустить system ("cls")? C++
C++ Что означает эта строка? int _tmain(int argc, _TCHAR* argv[])
Аналог clrscr() и system("cls") C++
C++ Аналог system("cls"); Есть ли что то побыстрей?
C++ очистка экрана system("cls")
Зависает программа на System("cls"); C++
Если объект константный, означает ли это, что ни один его член-элемент или член-метод не изменится? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
26.01.2012, 13:23     Что означает конструкция int(cls::*), если cls - это класс ? #2
Указатель на член класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
class cls
{
    public:
        int i;
        double d;
};
 
//----------
 
int main()
{
    int cls::* p1 = &cls::i;
    double cls::* p2 = &cls::d;
 
    cls obj1 = {1, 1.1};
    std::cout << obj1.*p1 << "\n";
    std::cout << obj1.*p2 << "\n";
 
    cls obj2 = {2, 2.2};
    std::cout << obj2.*p1 << "\n";
    std::cout << obj2.*p2 << "\n";
}
Yandex
Объявления
26.01.2012, 13:23     Что означает конструкция int(cls::*), если cls - это класс ?
Ответ Создать тему
Опции темы

Текущее время: 02:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru