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

Обращение к закрытому полю - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный массив в ассемблерной вставке http://www.cyberforum.ru/cpp-beginners/thread576461.html
Помогите, пожалуйста, выделить память в ассемблерной вставке под квадратную матрицу!
C++ Перегрузка оператора индексации Можно ли зоздать в своем классе перегрузку оператора , но с двойными скобками вроде? int &operator(int m,int n) { /*.....*/} http://www.cyberforum.ru/cpp-beginners/thread576455.html
Решебник М.Э.Абрамян C++
Доброго времени суток! Пишу решебник к задачнику М.Э.Абромян и столкнулся со следующими проблемами: Беда #1: Как осуществить поиск решения по его фрагменту? Решения в виде массивов строк. т.е. есть...
C++ Функция выбора режима
Здравствуйте! Нужна простейшая функция, для выбора режима последующей работы программы. Тонкость в том, что она должна игнорировать какие-либо иные символы. Вот моя функция: char...
C++ Однослойный персетрон http://www.cyberforum.ru/cpp-beginners/thread576441.html
Народ,очень срочно нужна помощь! мне нужно обучить персептрон с учителем на С++,может кто сталкивался? прогуглила и прочитала уже много всего, но что-то с кодом не догоняю
C++ Навигация в двунаправленном списке. Здравствуйте! Проблема такая. Не могу придумать как можно реализовать навигацию в двунаправленном списке таким образом например: нажимаешь 1 - отображает текущий элемент(выбранный), нажимаешь 2 -... подробнее

Показать сообщение отдельно
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
16.05.2012, 16:00
Если в С есть публичная шаблонная функция, то можно этот класс "взломать".

Например
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
#include <iostream>
 
class C
{
private:
    int a, b;
    
public:
    C() : a(1), b(2) {}
    
    template < class T >
    void foo(const T& t)
    {
        //...
    }
};
 
namespace
{
    struct temp {};
}
 
int A, B;
 
template <>
void C::foo< temp > (const temp& t) 
{
    A = this->a;
    B = this->b;
}
 
int main()
{
    C c;
    c.foo( temp() );
    
    std::cout << A << ' ' << B << std::endl;
}
Результат: http://liveworkspace.org/code/3b4fa7...13a8dae3681e81
Правда, так делать нехорошо, да и реализовать покрасивее можно.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru