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

Возможно ли это на с++? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Крестики-нолики http://www.cyberforum.ru/cpp-beginners/thread339900.html
#include <iostream> #include <cstring> using namespace std; void show_cells(); void make_move(int num); void result(); char cells = {'-', '-', '-', '-', '-', '-', '-', '-', '-'}; char PlayerName1,
C++ Как извлечь квадратный корень числа? Как в С++ найти корень с чисел 4 , 9 , 16 , 25 и так далее http://www.cyberforum.ru/cpp-beginners/thread339890.html
Данные которые вводятся в табоицу в команднйо строке C++
Ребята как создать такую таблицу скажем с4 колонками ну и соответсвенно ввести и обработать данные ??
IOStreams, localization C++
Здравствуйте! Подскажите, пожалуйста, как можно реализовать свой фасет для преобразования кодировок? Нужно писать в файл и читать из файла тексты на русском языке, содержащие диакритические символы.
C++ C++ и Многопоточность. http://www.cyberforum.ru/cpp-beginners/thread339826.html
Всем привет. Написал код с использованием Curl для авторизации в вконтакте (могу скинуть код). Аккаунты для авторизации берутся из текстового документа. Программа работает в 1 поток. Помогите её переделать чтоб она работала в N потоков.
C++ Как объявить двумерный динамический массив int *matrix = new int ; че ругается ? error C2540: non-constant expression as array bound а как сделать если без констант надо ? подробнее

Показать сообщение отдельно
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
07.08.2011, 23:27     Возможно ли это на с++?
Мне кажется, что данная задача — это как раз тот случай, когда разумно воспользоваться прокси-объектами.
Ниже мои наброски. Несмотря на то, что исходный код раздулся, хороший оптимизирующий компилятор имеет широкий простор для деятельности и способен повыкидывать нафиг все прослойки.
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
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
 
using namespace std;
 
class MyBoolContainer
{
private:
    class Accessor
    {
        public:
            Accessor(MyBoolContainer *p, unsigned i) : idx(i), ptr(p) {}
            Accessor& operator= (Accessor const& v)
                { return ((*this) = (bool)v); }
            Accessor& operator= (bool v)
            {
                if (v)
                    ptr->SetBit(idx);
                else
                    ptr->ClearBit(idx);
                return *this;
            }
            operator bool () const
                { return ptr->GetBit(idx); }
        private:
            unsigned idx;
            MyBoolContainer *ptr;
    };
 
public:
    MyBoolContainer() : val() {}
 
    Accessor operator[] (unsigned idx)
        { return Accessor(this, idx); }
 
    void SetBit(unsigned i)
        { val |= (1 << i); }
 
    void ClearBit(unsigned i)
        { val &= ~(1 << i); }
 
    bool GetBit(unsigned i) const
        { return 0 != (val & (1 << i)); }
 
    unsigned ToInt() const { return val; }
 
private:
    unsigned val;
};
 
int main()
{
    int i;
    cout << "input 1 or 0" << endl;
    cin >> i;
 
    MyBoolContainer c;
 
    c[0] = c[2] = (i&1);
    c[3] = 1;
    c[4] = c[3];
 
    cout << boolalpha;
    cout << "c[0] : " << c[0] << endl;
    cout << "c[1] : " << c[1] << endl;
    cout << "c[2] : " << c[2] << endl;
    cout << "c[3] : " << c[3] << endl;
    cout << "c[4] : " << c[4] << endl;
    cout << "c[5] : " << (c[5] = c[2]) << endl;
    cout << "c[3] == c[5] : " << (c[3] == c[5]) << endl;
    cout << "all in hex: " << hex << c.ToInt() << endl;
 
    return 0;
}
Наверняка тут ещё осталось место, где можно (или даже нужно) приложить руки, это всего лишь эскиз
 
Текущее время: 02:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru