Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46

перегрузка опрератора

13.09.2013, 21:01. Показов 1850. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте)
Можно ли перегрузить оператор foreach так чтоб доступ к елементам коллекции происходил через один?
Если нельзя то как реализовать это по-другому?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2013, 21:01
Ответы с готовыми решениями:

перегрузка опрератора <<
Помогите разобраться в коде. Весь день промучался, так и не нашел ошибку. Компилятор - VC++ 2008 - выдает ошибку компиляции, указывая на...

как реализовать перегрузку опрератора "="?
есть класс Base: class Base { private: ... //переменные public: Base(...); //конструктор ...

Перегрузка в виде метода VS Перегрузка в виде функции друг
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде функции друг? Добавлено через 4...

22
369 / 341 / 108
Регистрация: 12.02.2013
Сообщений: 653
13.09.2013, 21:13
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            List<string> lst = new List<string>();
            lst.Add("один");
            lst.Add("два");
            lst.Add("три");
            lst.Add("четыре");
            lst.Add("пять");
            lst.Add("шесть");
 
            bool b = true;
 
            foreach (string s in lst)
            {
                if (b)
                {
                    Console.WriteLine(s);
                    b = false;
                }
                else
                    b = true;
            }
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
13.09.2013, 21:18  [ТС]
А разве это перегрузка? Должна ж менятся сама реализация форич, чтоб он сам по себе через один выдавал?
0
369 / 341 / 108
Регистрация: 12.02.2013
Сообщений: 653
13.09.2013, 21:28
Цитата Сообщение от yulia_yulia Посмотреть сообщение
Должна ж менятся сама реализация форич
как вы себе это представляете?
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
13.09.2013, 21:41  [ТС]
// Overloading '+' operator:
public static ComplexNumber operator+(ComplexNumber a, ComplexNumber b)
{
return new ComplexNumber(a.real + b.real, a.imaginary + b.imaginary);
}

типо такого
0
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
13.09.2013, 21:49
yulia_yulia, По-моему циклы нельзя перегружать
Ниже приведен полный список операторов, которые можно перегрузить:

Унарные операторы: +, -, !, ~, ++, --, true, false

Бинарные операторы: +, -, *, /, %, &, |, ^, <<, >>, ==, !=, >, <, >=, <=
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
13.09.2013, 21:52  [ТС]
это я и хотела узнать..
А еще вопрос- как посмотреть в студии релизацию интерфейса страндартного,Enumerable к примеру?
0
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
13.09.2013, 21:58
Цитата Сообщение от yulia_yulia Посмотреть сообщение
как посмотреть в студии релизацию интерфейса
Реализацию вроде бы нельзя посмотреть, это ж не опен сорс.
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
13.09.2013, 22:06  [ТС]
А если мне нужно перегрузить метод moveNext класса Enumerator, чтоб он через один передвигался,это можно както сделать? как оно поймет какой метод выполнять?
0
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
13.09.2013, 22:11
Цитата Сообщение от yulia_yulia Посмотреть сообщение
А если мне нужно перегрузить метод moveNext класса Enumerator, чтоб он через один передвигался,это можно както сделать?
В чужой реализации ничего менять нельзя, как бы это инкапсуляция. (Вы же не можете перегрузить например + для int). Как вариант наследовать свой класс от класса Enumerator, создать свой метод, который будет вызывать метод класса Enumerator как вам нужно.
0
 Аватар для Закревский
184 / 184 / 29
Регистрация: 14.04.2013
Сообщений: 499
13.09.2013, 22:11
yulia_yulia,
1.Интерфейс IEnumerator
2.Из первого следует,что на основе этого интерфейса вы можете создать свой класс где foreach будет работать так как вам надо
MSDN
1
52 / 45 / 4
Регистрация: 07.10.2010
Сообщений: 95
13.09.2013, 22:16
перегрузить нельзя. Перекрыть можно
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
    class Program
    {
        static void Main(string[] args)
        {
            EvenElements<int> list = new EvenElements<int>(){0,1,2,3,4,5,6,7,8,9};
            foreach (int x in list)
            {
                Console.Write(x);
            }
            Console.Read();
        }
    }
 
    public class EvenElements<T> : List<T>, IEnumerable<T>
    {
 
        new public IEnumerator<T> GetEnumerator()
        {
            for (int i = 0; i < this.Count(); i += 2)
            {
                yield return this[i];
            }
        }
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }
1
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
13.09.2013, 22:22  [ТС]
Цитата Сообщение от Закревский Посмотреть сообщение
yulia_yulia,
1.Интерфейс IEnumerator
2.Из первого следует,что на основе этого интерфейса вы можете создать свой класс где foreach будет работать так как вам надо
MSDN
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
public class PeopleEnum : IEnumerator
{
    public Person[] _people;
 
    // Enumerators are positioned before the first element
    // until the first MoveNext() call.
    int position = -1;
 
    public PeopleEnum(Person[] list)
    {
        _people = list;
    }
 
    public bool MoveNext()
    {
        position++;
        return (position < _people.Length);
    }
 
    public void Reset()
    {
        position = -1;
    }
 
    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }
 
    public Person Current
    {
        get
        {
            try
            {
                return _people[position];
            }
            catch (IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }
}
Это допустим понятно,такое я напишу, а как сюда относится форич? вообще не понимаю ,де он реализовуется и откуда берется
0
 Аватар для Закревский
184 / 184 / 29
Регистрация: 14.04.2013
Сообщений: 499
13.09.2013, 22:26
Цитата Сообщение от yulia_yulia Посмотреть сообщение
де он реализовуется и откуда берется
Да вот тут он реализуется:
C#
1
2
3
4
5
public bool MoveNext()
    {
        position+=2;
        return (position < _people.Length);
    }
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.09.2013, 22:43
yulia_yulia, IEnumerable сейчас никто не использует, даже linq с ним работать не умеет, только глупый linq-старого синтаксиса.
1
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
14.09.2013, 11:36  [ТС]
попробовала я так

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
namespace Lab1_sam
 
{
    public class EvenElements<T> : HashSet<T>, IEnumerable<T>
    {
        
 
        new public IEnumerator<T> GetEnumerator()
        {
            for (int i = 0; i < this.Count(); i += 2)
            {
                yield return this.ElementAt(i);
            }
        }
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }
 
 
 
 
 
 
    public partial class lab1_collections : Form
    {
        private EvenElements<Kniga> knigaset = new EvenElements<Kniga>(); 
        public lab1_collections()
        {
            InitializeComponent();
           
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
           
            initDataGridView();
 
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
 
        }
 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
 
        //Колонки таблицы 
        private DataGridViewColumn dataGridViewColumn1 = null;
        private DataGridViewColumn dataGridViewColumn2 = null;
        private DataGridViewColumn dataGridViewColumn3 = null;
        private DataGridViewColumn dataGridViewColumn4 = null;
        private DataGridViewColumn dataGridViewColumn5 = null;
         
//Инициализация таблицы 
        private void initDataGridView() 
        { 
            dataGridView1.DataSource = null;
            dataGridView1.Columns.Add(getDataGridViewColumn1());
          dataGridView1.Columns.Add(getDataGridViewColumn2()); 
           dataGridView1.Columns.Add(getDataGridViewColumn3());
           dataGridView1.Columns.Add(getDataGridViewColumn4());
           dataGridView1.Columns.Add(getDataGridViewColumn5());
          dataGridView1.AutoResizeColumns(); 
        } 
 
//Динамическое создание первой колонки в таблице 
        private DataGridViewColumn getDataGridViewColumn1() 
        { 
            if (dataGridViewColumn1 == null) 
            { 
                dataGridViewColumn1 = new DataGridViewTextBoxColumn(); 
                dataGridViewColumn1.Name = ""; 
                dataGridViewColumn1.HeaderText = "название"; 
                dataGridViewColumn1.ValueType = typeof(string); 
                dataGridViewColumn1.Width = dataGridView1.Width / 5; 
            } 
            return dataGridViewColumn1;
        }
 
        //Динамическое создание второй колонки в таблице 
        private DataGridViewColumn getDataGridViewColumn2()
        {
            if (dataGridViewColumn2 == null)
            {
                dataGridViewColumn2 = new DataGridViewTextBoxColumn();
                dataGridViewColumn2.Name = "";
                dataGridViewColumn2.HeaderText = "кво стр";
                dataGridViewColumn2.ValueType = typeof(int);
                dataGridViewColumn2.Width = dataGridView1.Width / 5;
            }
            return dataGridViewColumn2;
        }
 
        //Динамическое создание третей колонки в таблице 
        private DataGridViewColumn getDataGridViewColumn3()
        {
            if (dataGridViewColumn3 == null)
            {
                dataGridViewColumn3 = new DataGridViewTextBoxColumn();
                dataGridViewColumn3.Name = "";
                dataGridViewColumn3.HeaderText = "дата";
                dataGridViewColumn3.ValueType = typeof(DateTime);
                dataGridViewColumn3.Width = dataGridView1.Width / 5;
            }
            return dataGridViewColumn3;
        }
 
        //Динамическое создание 4 колонки в таблице 
        private DataGridViewColumn getDataGridViewColumn4()
        {
            if (dataGridViewColumn4 == null)
            {
                dataGridViewColumn4 = new DataGridViewTextBoxColumn();
                dataGridViewColumn4.Name = "";
                dataGridViewColumn4.HeaderText = "цена";
                dataGridViewColumn4.ValueType = typeof(float );
                dataGridViewColumn4.Width = dataGridView1.Width / 5;
            }
            return dataGridViewColumn4;
        }
 
        //Динамическое создание 5 колонки в таблице 
        private DataGridViewColumn getDataGridViewColumn5()
        {
            if (dataGridViewColumn5 == null)
            {
                dataGridViewColumn5 = new DataGridViewTextBoxColumn();
                dataGridViewColumn5.Name = "";
                dataGridViewColumn5.HeaderText = "ел вер";
                dataGridViewColumn5.ValueType = typeof(bool);
                dataGridViewColumn5.Width = dataGridView1.Width / 5;
            }
            return dataGridViewColumn5;
        } 
        //Добавление книги в колекцию 
        private void addKniga(string nazvanie_knigi,
       int col_str,
       DateTime data_vipuska,
       double cena,
       bool el_ver) 
        { 
            Kniga kniga = new Kniga(nazvanie_knigi, col_str, data_vipuska, cena, el_ver);
            knigaset.Add(kniga);  
            textBox1.Text = "iuio"; 
            textBox2.Text = "12"; 
            textBox3.Text = "12/12/12";
            textBox4.Text = "1212";
            textBox5.Text = "true"; 
            showListInGrid(); 
        }
 
        private void DeletKniga(int inde)
        {
           
         
            knigaset.Remove(knigaset.ElementAt(inde));
            showListInGrid();
          
            
     }
         
 
        //Отображение колекции в таблице 
        private void showListInGrid()
        {
            dataGridView1.Rows.Clear();
            
            foreach (Kniga kniga in knigaset)
            {
                DataGridViewRow row = new DataGridViewRow();
                DataGridViewTextBoxCell cell1 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell2 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell3 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell4 = new
                DataGridViewTextBoxCell();
                DataGridViewTextBoxCell cell5 = new
                DataGridViewTextBoxCell();
               
                cell1.ValueType = typeof(string);
                cell1.Value = kniga.getNazvanie_knigi();
               cell2.ValueType = typeof(int);
               cell2.Value = kniga.getCol_str();
                cell3.ValueType = typeof(DateTime);
                cell3.Value = kniga.getData_vipuska();
                cell4.ValueType = typeof(float);
                cell4.Value = kniga.getCena();
                cell5.ValueType = typeof(bool);
                cell5.Value = kniga.getEl_ver();
                row.Cells.Add(cell1);
                row.Cells.Add(cell2);
                row.Cells.Add(cell3);
                row.Cells.Add(cell4);
                row.Cells.Add(cell5);
                dataGridView1.Rows.Add(row);
            }
        }
 
        private void button1_Click(object sender, EventArgs e){
 
            string s = textBox2.Text; ;
            int i = Convert.ToInt32(s);
 
            string ss = textBox5.Text; ;
            bool ii = Convert.ToBoolean(ss);
 
            string sss = textBox4.Text; ;
            double iii = Convert.ToDouble(sss);
 
            string ssss = textBox3.Text; ;
            DateTime iiii = Convert.ToDateTime(ssss);
 
            addKniga(textBox1.Text, i, DateTime.Parse(textBox3.Text), iii, ii); 
        }
 
        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        { 
 
            int yy = dataGridView1.SelectedCells[0].RowIndex;
           
                try
                {
                    DeletKniga(yy);
                }
                catch (Exception)
                {
                }
            }
        } 
 
    }
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
74
75
76
77
78
79
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Lab1_sam
{
    class Kniga 
    {
        private string nazvanie_knigi;
        private int col_str;
        private DateTime data_vipuska;
        private double cena;
        private bool el_ver;
 
        public Kniga(string nazvanie_knigi,
       int col_str,
       DateTime data_vipuska,
       double cena,
       bool el_ver)
        {
            this.nazvanie_knigi = nazvanie_knigi;
            this.col_str = col_str;
            this.data_vipuska = data_vipuska;
            this.el_ver = el_ver;
            this.cena = cena;
        }
 
        public string getNazvanie_knigi() {
            return this.nazvanie_knigi;
        }
 
        public int getCol_str()
        {
            return this.col_str;
        }
 
        public DateTime getData_vipuska()
        {
            return this.data_vipuska;
        }
 
        public double getCena()
        {
            return this.cena;
        }
 
        public bool getEl_ver()
        {
            return this.el_ver;
        }
 
        public void setNazvanie_knigi(string nazvanie_knigi)
        {
            this.nazvanie_knigi = nazvanie_knigi;
        }
 
        public void setCol_str(int col_str)
        {
             this.col_str = col_str;
        }
 
        public void setData_vipuska(DateTime data_vipuska)
        {
             this.data_vipuska = data_vipuska;
        }
 
        public void setCena(double cena)
        {
             this.cena = cena;
        }
 
        public void setEl_ver(bool el_ver)
        {
            this.el_ver = el_ver;
        }
 
    }
}
вылетает ,пишет StackOverFowException
Помогите!!!!что не так
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
14.09.2013, 11:55
насколько я понял ошибка в строке:
Цитата Сообщение от yulia_yulia Посмотреть сообщение
for (int i = 0; i < this.Count(); i += 2)
например, если элементов в коллекции 13, то 12 + 2 попытается получить доступ к несуществующему элементу.
в си шарп я не силён, как впрочем и в любом другом языке, по-этому исправления придумал не совсем логичные:
1)
C#
1
for (int i = 0; i < Convert.ToInt32(this.Count()/2)*2; i += 2)
2)
C#
1
2
3
4
5
for (int i = 0; i < this.Count(); i ++)
    {
         yield return this.ElementAt(i);
         i++;
     }
0
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46
14.09.2013, 12:04  [ТС]
все равно вылетает так же
yield return this.ElementAt(i);
на этой строке
0
52 / 45 / 4
Регистрация: 07.10.2010
Сообщений: 95
14.09.2013, 13:13
А зачем было использовать HashSet, что-то мне подсказывает, что скорее всего вы не знаете для чего нужна эта коллекция.
Второе - а зачем вы используете Linq метод ElementAt, тоже не зная что это такое...
Внутри ElementAt вызывается GetEnumerator(), внутри которого вызывается ElementAt внутри которого, ну вы поняли...
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.09.2013, 13: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
74
75
 public class EvenElements<T> : IList<T>
    {
        private readonly List<T> _list = new List<T>();
 
        public IEnumerator<T> GetEnumerator()
        {
            bool isReturned = true;
            foreach (T var in _list)
            {
                if (isReturned)
                    yield return  var;
                isReturned = !isReturned;
            }
 
        }
 
        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
 
        public void Add(T item)
        {
            throw new NotImplementedException();
        }
 
        public void Clear()
        {
            throw new NotImplementedException();
        }
 
        public bool Contains(T item)
        {
            throw new NotImplementedException();
        }
 
        public void CopyTo(T[] array, int arrayIndex)
        {
            throw new NotImplementedException();
        }
 
        public bool Remove(T item)
        {
            throw new NotImplementedException();
        }
 
        public int Count { get; private set; }
        public bool IsReadOnly { get; private set; }
        public int IndexOf(T item)
        {
            throw new NotImplementedException();
        }
 
        public void Insert(int index, T item)
        {
            throw new NotImplementedException();
        }
 
        public void RemoveAt(int index)
        {
            throw new NotImplementedException();
        }
 
        public T this[int index]
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
    }
ну и так далее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2013, 13:27
Помогаю со студенческими работами здесь

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

перегрузка []
Есть класс, и почему компилятор выдает ошибку на функции int &amp;operator(int); #ifndef ARRAY1_H #define ARRAY1_H #include...

Перегрузка.
Всем привет. Вот, попросили помочь, кому не сложно. Сам код: #ifndef OTREZOK_H #define OTREZOK_H #include &lt;iostream&gt;...

перегрузка
помогите сделать перегрузку пожалуйста... static public void Method2() { const byte m = 5, n = 7; ...

Перегрузка new
Дайте примеры на перегрузку. #define n ... // Некая целая константа class a { ... }; // Некий класс a *p=new a; // Здесь должен быть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru