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

Friend функции, определенные в теле класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отправка е-мейла http://www.cyberforum.ru/cpp/thread1370460.html
Хочу написать программу которая отправляет е-мейл(ввод е-мейла отправителя и ввод е-мейла получателя вводится в коде программы), прикрепив картинку. Причем часть пути картинки может быть не известна...
C++ Список функций из стандартных dll библиотек (lib.exe MVS) В общем нужен список функций (желательно и хедеров, в которых они находятся) исходя из имени стандартной библиотеки dll. Наткнулся в инете что это мне может дать lib.exe, который входит в состав... http://www.cyberforum.ru/cpp/thread1370268.html
Ошибка в шаблоне функции C++
Доброго времени суток. У меня проблема с функцией для чтения таблицы из файла, которая спокойно работает с типами int и float, но не хочет работать как шаблон функции. template <typename A>...
Декомпиляторы С++ кода C++
Декомпиляторы С++ кода Доброго вечера!! Перечислите поджалуста, назовите. Ссылки, это, крайне приветствую! Очень хочу поиграть с такими игрушками. А если можно, выкладывайте сюда!
C++ NetBeansIDE8 не находит команду make http://www.cyberforum.ru/cpp/thread1368887.html
всем привет! возникла проблема установил NetBeansIDE8 создаю проект и при выполнении не находит команду маке... помогите кто может - кто может помогите... скриншот прилагаю )
C++ Книжка по MPEG-4 Посоветуйте книгу на русском по mpeg-4. На работе дали почитать http://www.img.lx.it.pt/~fp/cav/Additional_material/MPEG2_overview.pdf Но читается сложно - много специфической терминологии. Поэтому... подробнее

Показать сообщение отдельно
hoggy
6642 / 2828 / 485
Регистрация: 15.11.2014
Сообщений: 6,254
Завершенные тесты: 1

Friend функции, определенные в теле класса - C++

08.02.2015, 21:12. Просмотров 591. Ответов 10
Метки (Все метки)

Всем привет!

Непонятна логика, которой руководствуются компиляторы.

Рассмотрим код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
struct A{ friend A* foo(A* ptr){ std::cout<<"ok";return ptr;}};
 
int main(){
    
    A* ptr;
  
    foo(ptr);      // ok
    foo(nullptr); //  error: ‘foo’ was not declared in this scope
    
   return 0;
}
Почему компилятор не выполнил неявного приведения типов?

И вообще, в чем принципиальное отличие от такого варианта:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
struct A;
A* foo(A* ptr);
struct A{ friend A* foo(A* ptr){ std::cout<<"ok";return ptr;}};
 
int main(){
    
    A* ptr;
  
    foo(ptr);      // ok
    foo(nullptr); // ok
    
   return 0;
}
Поведение одинаковое для cl(вижал студиия) / gcc/ clang
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru