Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- ////////////////////////////////////////////
- class TT
- {
- friend int f(TT *); // И одновременно является прототипом функции.
- int n1;
- int n2;
- int add(int _n)
- {
- return n1 + _n;
- }
- };
- int _f(TT *);
- ////////////////////////////////////////////
- int main() //
- {
- TT t;
- _f(&t);
- printf("add = %d\n", f(&t) );
- }
- ////////////////////////////////////////////
- int _f(TT *pt) //
- {
- int *p = (int*)pt;
- *p = 12;
- p++;
- *p = 999;
- }
- // Из дружественной функции:
- // 1) Инициализируем закрытое поле "n1"
- // 2) Вызываем закрытый метод "add()"
- ////////////////////////////////////////////
- int f(TT *pt) //
- {
- printf("n1 = %d, n2 = %d\n", pt->n1, pt->n2);
- pt->n1 = 7;
- return (*pt).add(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement