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

Protected Private Public - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять все буквы а на a (русские на латинские) и к на k http://www.cyberforum.ru/cpp-beginners/thread919222.html
Вводят 2 текста. Сравнить их, объединить, вывести все пробелы, точки, запятые, двоеточия. Затем вывести размер каждого текста и общий размер. Затем поменять все буквы а на a (русские на латинские) и...
C++ Вывод текста из файла в консоль и его последующее редактирование Задача состоит в следующем: нужно вывести текст из файла расширением, скажем .txt, в консоль, и далее заниматься его редактированием. То есть, это выравнивание по ширине, корректное отображение... http://www.cyberforum.ru/cpp-beginners/thread919217.html
Написать функцию для заполнения числами из указанного диапазона C++
Написать функцию для заполнения числами из указанного диапазона.
подключение к материнке C++
как мне подключится в материнке и изменить скорость врещения кулера на проце? допустим адрес кулера я уже знаю.
C++ Переставить элементы массива так, чтобы отрицательные оказались в начале, положительные - в конце http://www.cyberforum.ru/cpp-beginners/thread919186.html
дан массив целых чисел переставить его элементы так, чтобы отрицательные оказались в начале, положительные - в конце, а нули - между ними уточнение: положительные (и отрицательные тоже) должны...
C++ Заголовочный файл Здравствуйте. Помогите, пожалуйста, разобраться с заголовочными файлами и функциями-"друзьями". Например: main.cpp #include "A.h" #include "myTest.cpp" // проблемное место int main(){ A... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
07.07.2013, 18:49
Wolkodav, На самом деле - этот момент отлично рассматривается у Саттера "Новые сложные задачи на С++" Задача 15. Кому лень читать - опишу примеры тут.

Стандартный вариант
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
#include <iostream>
 
class A
{
    int a;
public:
    A() : a(0) {}
    int get() { return a; }
    template<typename T>
    void function() {}
};
 
struct dummy {};
 
template<>
void A::function<dummy>()
{
    a = 500;
}
 
int main()
{
    A a;
    std::cout << a.get() << std::endl;
    a.function<dummy>();
    std::cout << a.get() << std::endl;
}
https://ideone.com/iS1ghd

Хак

Создаем новый файлик, в нем определяем наш класс с тем же именем и ровно тем же составляющим, добавляя некую friend функцию.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// X.h
 
class X
{
int value;
};
 
// X_h.h
 
class X
{
int value;
friend ::hack(X&);
};
 
void hack(X&) { x.a = 5; }


Хак
C++
1
2
3
#define private public
//
#undef private

Хак
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class X
{
int a;
};
 
class HackX
{
public:
   int not_private;
};
 
void f(X& x)
{
   (reinterpret_cast<HackX&>(x)).not_private = 500;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru