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

Friend declaration construction - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с кодировками http://www.cyberforum.ru/cpp/thread1781380.html
Всем привет. Есть следующая проблема: есть программа, которая загружает html код страницы с сайта. Затем из этого html кода необходимо выдернуть все ссылки. Проблема заключается в том, что html документ может быть сохранен в любой кодировке. Поэтому, т.к. для себя я выбрал использовать utf-8, мне необходимо эти символы преобразовывать в utf-8. 1) Какие есть стандартные средства для...
C++ Развейте мои сомнения: упростится ли программирование при переходе от C к C++? Когда-то я уже начинал изучать C++, даже писал не большие программки на C++. Потом забросил и не кодил на C++ лет 8. Почти все забыл. Но тут возникла одна идея, которую нужно реализовать в виде программы и я решил тут «вспомнить молодость» и начать, что называется, «с нуля». Взял в руки книжку В.В. Подбельского «язык C++» 2005 года выпуска (знаю, что есть Страуструп, Липман и др. книжки посвежее... http://www.cyberforum.ru/cpp/thread1781376.html
C++ Сколько весит объект пустого класса
Господа, Создается пустой класс, скажем: class A { }; Потом объявляется переменная: A value; Вопрос: сколько value будет занимать места в куче (если она вообще там будет)?
Решение СЛАУ методом вращений (Якоби) - Рабочий метод C++
Есть этот код он рабочий, но надо коментарии повсюду, а я языка совсем не знаю, помогите кто может, зарание спасибо #include "stdafx.h" #include "stdio.h" #include <iostream> #include "math.h" const double PI = 3.1415926536; //метод поворотів якобі bool isSimmetrial( double **coefficients, int numberOfEquation ) {
C++ Вывести в консоль значение типа BYTE http://www.cyberforum.ru/cpp/thread1781333.html
COLORREF pix=GetPixel(hdc,0,0); BYTE b=GetGValue(pix); std::cout<<b<<std::endl; В консоль выводится какие-то знаки, а мне нужно получать значения от 0-255 как это сделать?
C++ Класс стек, наследованный от связного списка Как я понял из текста, что для методов isEmpty и print класса List нужен какой-то аргумент. Объясните пожалуйста, что такое -fpermissive. Ошибки: In member function 'int Stack<STACKTYPE>::isStackEmpty() const: 14 строка there are no arguments to 'isEmpty' that depend on a template parameter, so a declaration of 'isEmpty' must be available (if you use '-fpermissive', G++ will accept your... подробнее

Показать сообщение отдельно
Nosey
 Аватар для Nosey
1203 / 370 / 106
Регистрация: 22.10.2014
Сообщений: 810
Завершенные тесты: 2
17.07.2016, 19:50     Friend declaration construction
Цитата Сообщение от hoggy Посмотреть сообщение
напишите код,
который иллюстрирует все три правила.
Цитата Сообщение от hoggy Посмотреть сообщение
который иллюстрирует все три правила.
You are welcome :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
 
class A;
 
template<typename T> void f1(A& a, T v);
template<typename T> void f1_1(A& a, T v);
template<typename T> void f3(A& a, T v);
void f2(A& a, int v);
 
class A
{
    int a;
    friend void ::f1<>(A&, int); // первое правило - привязывает к шаблонам
    friend void f1_1<>(A&, int); // также первое правило - привязывает к шаблонам, т.е квалификация не обязательна.
    friend void ::f2(A&, int); // второе правило - привязывает к обычным функциям
    friend void ::f3(A&, int); // третье правило - если (2)-ой вариант не сработал - обязаны попытаться привязать к шаблону. Юзая классическую дедукцию аргументов шаблона.
    friend void f4(A&, int); // четвертое правило - компилятор сам объявит эту функцию.
};
 
template<>
void f1<int>(A& a, int v)
{
    a.a = v;
    std::cout << a.a;
}
 
template<>
void f1_1<int>(A& a, int v)
{
    a.a = v;
    std::cout << a.a;
}
 
void f2(A& a, int v)
{
    a.a = v;
    std::cout << a.a;
}
 
template<>
void f3<int>(A& a, int v)
{
    a.a = v;
    std::cout << a.a;
}
 
void f4(A& a, int v)
{
    a.a = v;
    std::cout << a.a;
}
 
int main()
{
    A a;
    f1(a,10);
    f1_1(a,11);
    f2(a,12);
    f3(a,13);
    f4(a,14);
}
В студии верхний код соберется. В остальных компиляторах мне лень дотошно разбираться и описывать, но вот пока баловался понял, что в gcc - багов по теме дружественности больше, чем просто "не привязывает дружественность"
 
Текущее время: 04:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru