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

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

Войти
Регистрация
Восстановить пароль
 
Lambont
28 / 28 / 15
Регистрация: 23.11.2013
Сообщений: 63
#1

Что за static friend конструкция? - C++

20.01.2014, 19:24. Просмотров 415. Ответов 2
Метки нет (Все метки)

Здравствуйте, изучаю C++, откопал я тут случайно пример:
C++
1
2
3
4
5
6
7
8
class t{
    int var;
public:
    t(int val):var(val){};
    static friend int inc(t *pt){
        return ++pt->var;
    }
};
static friend int inc(t *pt) - что это, как оно вообще компилируется?
Ведь, насколько я знаю, при static-методе, к методу можно обращаться вне класса (только с оператором разрешения), но метод всё также остаётся собственностью класса в отличии от friend, при котором метод не будет является собственностью (а в данном случае является как глобальная функция с доступом к private-членам t)... Что-то взаимоисключающее прямо
Проверил, работает так, будто метод объявлен только как friend, может static при компиляции удаляется, если компилятор видит рядом friend?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 19:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что за static friend конструкция? (C++):

Перегрузка операторов, friend или нет friend? - C++
Всем здравствуйте. Есть такой вопрос: при перегрузке операторов в классе(пусть будут + и = (вообще неважно, за исключением потока)) как и...

Friend что то не френдится - C++
//Point.h #ifndef POINT_H #define POINT_H class Point { private: double x; double y;

Что в данном случае означает friend? - C++
Всем доброй ночи! Помню, кода-то очень давно мельком видел, что кто-то уже спрашивал аналогичный вопрос, но тогда не придал этому...

Что за конструкция? - C++
что означает такая конструкция??? int *&node

Что за конструкция? - C++
Доброго времени суток. Встречал где-то конструкцию типа for(;;) { тыры-пыры; } В общем, без указания параметров цикла. Встречал...

Что за конструкция? - C++
Привет. Что за конструкция такая? Поясните что делает: for( int i=0;i<N;++i ){ ++nCount; } f() - возвратит...

2
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
20.01.2014, 22:31 #2
Lambont, тут написано
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.01.2014, 23:09 #3
Цитата Сообщение от Lambont Посмотреть сообщение
как оно вообще компилируется?
А главное где?
http://ideone.com/svngCK
Хотя студия съедает, но в итоге получается код, эквивалентный friend (без static)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2014, 23:09
Привет! Вот еще темы с ответами:

Что за конструкция в языке? - C++
int a = {{1,2},3}; что значат скобки внутри скобок?

Что за конструкция языка - C++
int a={{{1,2},3},{{4,5},6},{{7,8},9}}; как можно вывести значение 6 например? как вообще обращаться к элементам массива?

Что делает данная конструкция? - C++
int x = 5; 0 = x + x; Что она делает, как называется и зачем используется?

Что значит эта конструкция - C++
Здравствуйте. return (h<0) ? (h + a) : h; Впервые вижу такую строку. Что на значит. Спасибо.


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

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

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