Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/41: Рейтинг темы: голосов - 41, средняя оценка - 4.90
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1

Как происходит возврат значения по ссылке?

08.03.2015, 18:19. Показов 9033. Ответов 88
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, распишите пожалуйста детально про то, как происходит возврат значения по ссылке.
Можно вот на этом примере:
C++
1
2
3
4
5
alpha& operator=(alpha& a) // перегружаемая операция =
{
   data = a.data;
   return *this;
}
Да и вобще, что есть ссылка? Можно ли ее считать саморазыменовывающимся указателем?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.03.2015, 18:19
Ответы с готовыми решениями:

Возврат значения по ссылке
Долго гуглил, но что-то так и не понял. Почему слева от знака = может использоваться только функция, возвращающая ссылку?

Запутался и уже не понимаю как вообще может работать возврат объекта по ссылке
Здравствуйте, киберфорумчане. Сейчас читаю Г. Шилдта и в его книге рассказывается о побочных эффектах при передаче объектов в функцию и при...

Возврат по ссылке
Приветствую всех! Есть пример из книги Р. Лафоре "Объекто-ориентированное программирование в C++": #include <iostream> ...

88
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 15:00
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Velesthau Посмотреть сообщение
Можно что угодно придумывать, но этот пример показывает, что ссылки не просто текстовые метки в коде.
этот пример вообще не понятно что показывает не видя ассма.

Цитата Сообщение от Velesthau Посмотреть сообщение
Отсебятины он в код пихать не будет. Будет в бинарь дебажную инфу класть.
когда он блоки ставит, что бы проверить вылет за пределы диапазона, ну или там, всякую туфту закладывает, что бы идентифицировать не инициализированные переменные, это все как называется?
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
10.03.2015, 15:00
Цитата Сообщение от hoggy Посмотреть сообщение
в том то и дело, что мы не можем закладываться на то, что в итоге сотворит компилятор.
Так же как мы не можем закладываться на то, что "ссылка - это просто текстовая метка", так как это неправда.
Цитата Сообщение от hoggy Посмотреть сообщение
ваш эксперимент ничего не показывает.
Он как раз показал, что твоя фраза про текстовую метку врет и на нее нельзя полагаться. И в асме ссылка вполне себе может быть представлена в памяти.
0
 Аватар для gromo
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
10.03.2015, 15:01
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
И еще вопрос можно ли создать массив ссылок по аналогии с массивом указателей, и вобще, имеет ли это смысл?
Да можно, только через небольшую обёртку std::reference_wrapper.
Имеет ли это смысл? Имеет, когда надо выполнить над списком элементов работу, не изменяя оригинальную последовательность или когда это невозможно.
Вот небольшой пример:
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
#include <algorithm>
#include <list>
#include <vector>
#include <iostream>
#include <numeric>
#include <random>
#include <functional>
 
int main()
{
    std::list<int> mainList(10);
    std::iota(mainList.begin(), mainList.end(), 0);
 
    std::vector<
            std::reference_wrapper<decltype(mainList)::value_type>
            > v( mainList.begin(), mainList.end() );
 
    // "Видимость" работы: перемешали связанный список, что невозможно для std::list
    // однако возможно для вектора ссылок на его элементы
    std::shuffle(v.begin(), v.end(), std::mt19937{std::random_device{}()});
 
    std::cout << "Contents of the list: ";
    for (int n : mainList) std::cout << n << ' '; std::cout << '\n';
 
    std::cout << "Contents of the list, as seen through a shuffled vector: ";
    for (int i : v) std::cout << i << ' '; std::cout << '\n';
 
    std::cout << "Doubling the values in the initial list...\n";
    for (int& i : mainList) {
        i *= 2;
    }
 
    std::cout << "Contents of the list, as seen through a shuffled vector: ";
    for (int i : v) std::cout << i << ' '; std::cout << '\n';
}
Похожие идеи заложены в std::experimental::basic_string_view и QStringRef из Qt.
1
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
10.03.2015, 15:01
Цитата Сообщение от hoggy Посмотреть сообщение
этот пример вообще не понятно что показывает не видя ассма.
В асме все и так явно видно, как адрес переменной кладется в стек (ссылка).
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 15:02
Цитата Сообщение от Velesthau Посмотреть сообщение
Асм работающий с ссылками я уже видел.
я тоже видел.

вот например:

https://www.cyberforum.ru/post5873145.html
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
10.03.2015, 15:04
Цитата Сообщение от hoggy Посмотреть сообщение
когда он блоки ставит, что бы проверить вылет за пределы диапазона
Он не делает изменений при этом в пользовательском коде.

Добавлено через 1 минуту
hoggy, не меняй тему. Про передачу в функцию я могу с тобой отдельно обсудить. Ты еще не сумел от локальных ссылок отвертеться. Они существуют, как видишь, в памяти
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 15:10
Цитата Сообщение от Velesthau Посмотреть сообщение
Так же как мы не можем закладываться на то, что "ссылка - это просто текстовая метка", так как это неправда.
можем. причем не просто можем, а должны.
со всеми вытекающими: нет собственного объекта, нельзя получит адрес, зато можно напрямую воздействовать на оригинальный объект, и тд и тп.

а вот на то, что компиль оформит её как указатель - не можем.
потому что не факт.

Добавлено через 51 секунду
Цитата Сообщение от Velesthau Посмотреть сообщение
Они существуют, как видишь, в памяти
не вижу.

я не знаю во что компиль превратил код.

покажите мне ассм так, как это сделал DrOffset. Со всеми сопроводительными пояснениями.

Добавлено через 1 минуту
Цитата Сообщение от gromo Посмотреть сообщение
Да можно, только через небольшую обёртку std::reference_wrapper.
не нужно путать "массив ссылок" с "контейнером оберточного типа".

Добавлено через 2 минуты
Цитата Сообщение от Velesthau Посмотреть сообщение
Он не делает изменений при этом в пользовательском коде.
при чем тут исходный код?
как это соотносится с нашим диалогом?
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
10.03.2015, 15:25
Цитата Сообщение от hoggy Посмотреть сообщение
можем. причем не просто можем, а должны.
Практика подтверждает обратное.
Цитата Сообщение от hoggy Посмотреть сообщение
я не знаю во что компиль превратил код.
Вот именно, что не знаешь.
Цитата Сообщение от hoggy Посмотреть сообщение
покажите мне ассм так, как это сделал DrOffset. Со всеми сопроводительными пояснениями.
Вот ты лентяй Да на:
Код в три строки:
C++
1
2
3
    int i = 10;
    int &a = i;
    std::cout << a;
Assembler
1
2
3
4
5
6
7
8
9
10
11
    int i = 10;
00155D7E  mov         dword ptr [ebp-8],0Ah   ; переменная i, по адресу ebp-8, помещаем в нее 10
    int &a = i;
00155D85  lea         eax,[ebp-8]  ; загружаем ее адрес в регистр eax
00155D88  mov         dword ptr [ebp-14h],eax  ; сохраняем адрес переменной i (он в eax) в другую область памяти - ebp-14 (в памяти в другом месте на стеке теперь хранится адрес ebp-8 - это ссылка)
    std::cout << a;
00155D8B  mov         esi,esp  
00155D8D  mov         eax,dword ptr [ebp-14h]  ; грузим в eax значение по адресу ebp-14, значение по этому адресу - адрес переменной i
00155D90  mov         ecx,dword ptr [eax]  ; значение по адресу из eax (там адрес i сейчас) помещаем в ecx
00155D92  push        ecx ; запихиваем его на стек для передачи как параметр функции.
; ну и дальше другие параметры для вызова и вызов.
Добавлено через 4 минуты
И в памяти будет такая картина:
Code
1
2
0x00C4F7BE  cc cc cc cc cc cc cc cc cc cc cc cc cc cc d8 f7 c4 00 cc cc cc cc cc cc cc cc  ММММММММММММММШчД.ММММММММ
0x00C4F7D8  0a 00 00 00 cc cc cc cc 30 f8 c4 00 d9 6b 15 00 01 00 00 00 80 c2 e4 00 30 bb  ....ММММ0шД.Щk......ЂВд.0»
по адресу 0x00C4F7D8 лежит 0Ah, а по адресу 0x00C4F7CC лежит сам адрес 0x00C4F7D8 - это ссылка.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 15:32
Цитата Сообщение от Velesthau Посмотреть сообщение
Практика подтверждает обратное.
ложь.

практика подтверждает все мои тезисы.

итак, практическая задача:

необходимо перенацелить ссылку.
дизайн следующий:

C++
1
2
3
4
5
6
7
int v1 = 10;
int v2 = 20;
 
int& ref = v1;
 
target(ref, v2);  //<--- функция, или макрос. 
 //должен перенацелить любую ссылку на другой объект
пускай это будет работать хотя бы на одном отдельно взятом компиляторе,
но при этом - работать стабильно.
(не зависеть от ключей компилятора и фазы луны).

что бы реализовать такую задачу требуется,
что бы у ссылки подобно указателю всегда был реальный объект.

если это требование не выполняется - стабильно перенацелить ссылку не получится никакими хаками.

я уверен (я знаю), что выполнить данную задачу невозможно никакими хаками.

и именно это показывает практика.


я могу привести вам пример, где ссылка стабильно будет реализована через указатель.
да, бывают ситуации, когда компилятор вынужден реализовать ссылку через указатель.
ну и что?

что это меняет в моих тезисах, и что это меняет на практике для нас, программистов?

ничего не меняет.
ссылка по прежнему остается той же самой ссылкой - псевдонимом объекта.

и обращаться с нею придется именно, как с псевдонимом объекта, и никак иначе.
и поиметь с неё стабильно можно только то, что можно поиметь с объекта на который она ссылается.

вот что показывает практика.




Цитата Сообщение от Velesthau Посмотреть сообщение
Вот ты лентяй
я не лентяй, я просто ассмом не владею.
и поэтому, пока кто нибудь не объяснит что там происходит - я хз.
0
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
10.03.2015, 15:54
Цитата Сообщение от Velesthau Посмотреть сообщение
по адресу 0x00C4F7D8 лежит 0Ah, а по адресу 0x00C4F7CC лежит сам адрес 0x00C4F7D8 - это ссылка.
Ну как бы вся суть байтослесарей. Семантика языка? Не-е-е, не слышал. Лучше посмотрю дамп памяти и сделаю выводы космических масштабов
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 15:55
Цитата Сообщение от Voivoid Посмотреть сообщение
Ну как бы вся суть байтослесарей. Семантика языка? Не-е-е, не слышал. Лучше посмотрю дамп памяти и сделаю выводы космических масштабов
показания разняцца в зависимости от разных ключиков, и разных компиляторов.
так что это вообще не показатель.
0
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
10.03.2015, 15:57
Цитата Сообщение от hoggy Посмотреть сообщение
показания разняцца в зависимости от разных ключиков, и разных компиляторов.
так что это вообще не показатель.
э-э-э, ты кажется мое сообщение воспринял несколько иначе, чем я хотел его донести
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 16:05
Цитата Сообщение от Voivoid Посмотреть сообщение
э-э-э, ты кажется мое сообщение воспринял несколько иначе, чем я хотел его донести
я прекрасно понял вашу мысль: не стоит по "выхлопу компилятора" судить о "правилах языка".

мой цемес: по выхлопу компилятора и не получится судить о правилах языка с++.
потому что в зависимости от, выхлоп получается самый разный.
и такое "нестабильное поведение" ничего не доказывает.

он ведь и обычный указатель соптимизировать может.
но из этого никак не следует, что у указателей не может быть своего объекта.
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
10.03.2015, 16:21
Цитата Сообщение от Voivoid Посмотреть сообщение
Семантика языка?
Семантика языка никак не связана с утверждением, что ссылка - это просто текстовая метка.
Цитата Сообщение от Voivoid Посмотреть сообщение
Лучше посмотрю дамп памяти и сделаю выводы космических масштабов
Нормальный дамп и нормальный вывод. Ты, кроме общих фраз, ничего путного сказать не можешь.

Добавлено через 59 секунд
Цитата Сообщение от Voivoid Посмотреть сообщение
Ну как бы вся суть байтослесарей.
Вся суть гуманитариев. Абстрактная бесполезная болтовня.

Добавлено через 4 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
пускай это будет работать хотя бы на одном отдельно взятом компиляторе,
но при этом - работать стабильно.
(не зависеть от ключей компилятора и фазы луны).
что бы реализовать такую задачу требуется,
что бы у ссылки подобно указателю всегда был реальный объект.
если это требование не выполняется - стабильно перенацелить ссылку не получится никакими хаками.
я уверен (я знаю), что выполнить данную задачу невозможно никакими хаками.
и именно это показывает практика.
я могу привести вам пример, где ссылка стабильно будет реализована через указатель.
да, бывают ситуации, когда компилятор вынужден реализовать ссылку через указатель.
ну и что?
Я не описываю работу ссылок, я говорю о том, что это нельзя полагаться на то, что это просто текстовая метка, которая никак на память не влияет.
Цитата Сообщение от hoggy Посмотреть сообщение
что это меняет в моих тезисах, и что это меняет на практике для нас, программистов?
Например меняет то, что кол-во локальных ссылок, которые ты можешь создать может зависеть от размера стека, а не от возможностей текстового редактора. А может и не зависеть, в зависимости от кода. Это можно принимать во внимание.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
10.03.2015, 16:33
Цитата Сообщение от Velesthau Посмотреть сообщение
Я не описываю работу ссылок, я говорю о том, что это нельзя полагаться на то, что это просто текстовая метка, которая никак на память не влияет.
А разве кто-то полагается?
Цитата Сообщение от hoggy Посмотреть сообщение
ещё раз повторяю: в стандарте нигде не сказано,
как именно должен быть реализован механизм ссылки.
Спор, по сути, как раз выливается в то, как он реализован в конкретно взятом компиляторе. Хотя вроде бы и не хотели об этом спорить.
0
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
10.03.2015, 16:33
Цитата Сообщение от Velesthau Посмотреть сообщение
Семантика языка никак не связана с утверждением, что ссылка - это просто текстовая метка.
Чего? Какая метка?

8.3.2 4 It is unspecified whether or not a reference requires storage.
Вот это все что и нужно знать
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 16:48
Цитата Сообщение от Velesthau Посмотреть сообщение
Я не описываю работу ссылок, я говорю о том, что это нельзя полагаться на то, что это просто текстовая метка, которая никак на память не влияет.
вы вообще осознаете разницу между "правилами языка" и "закулисной кухней компилятора" ?
компилятор может делать все, что ему вздумается,
если реализуемое им поведение не отходит от стандарта (правил языка).

вы сейчас описывали работу компилятора, а вовсе не ссылок, если что.
---------------------------------

Ссылку можно и нужно воспринимать просто как текстовую метку:
альтернативное имя одного и того же объекта.

потому что так говорит стандарт: ссылка - тип данных, который определяет псевдоним объекта.

и даже если в отдельном случае компилятор оформит её через указатель,
от этого ровным счетом ничего не изменится.

Ссылка - псевдоним объекта. Это - правила языка.
Это то, чем должен руководствоваться программист, который пишет код по стандарту.

А вот полагаться, что она будет реализована через указатель - нельзя,
потому что стабильно поюзать её, как указатель вы все равно не сможете.
(никакими хаками не сможете)

Цитата Сообщение от Velesthau Посмотреть сообщение
Например меняет то, что кол-во локальных ссылок, которые ты можешь создать может зависеть от размера стека,
Ключевое слово "может". Может да, а может нет.

На практике, остаток запаса на стеке никого не парит.
А тех, кого питух клюнул,
просто расширяют его волшебными ключами компилятора, и не заморачиваются.

Добавлено через 8 минут
Цитата Сообщение от Voivoid Посмотреть сообщение
Чего? Какая метка?
имя ссылки в исходном коде.

Имя обозначает (денотирует) объект, функцию, тип, значение или метку. Имя вводится в программе описанием (#8). Имя может использоваться только внутри области текста программы, называемой его областью видимости. Имя имеет тип, определяющий его использование. Объект - это область памяти. Объект имеет класс памяти, определяющий его время жизни. Смысл значения, обнаруженного в объекте, определяется типом имени, использованного для доступа к нему.
(Ц)Старина Бъярни.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.03.2015, 16:48
Цитата Сообщение от hoggy Посмотреть сообщение
Ключевое слово "может". Может да, а может нет.
На практике, остаток запаса на стеке никого не парит.
А тех, кого питух клюнул,
просто расширяют его волшебными ключами компилятора, и не заморачиваются.
Вообще то все нормальные программисты стек экономят. Без фанатизма конечно, но экономят. Именно отсюда передача параметров по константным ссылками. Вот только количество локальных ссылок здесь ни причём.
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
10.03.2015, 16:52
Цитата Сообщение от hoggy Посмотреть сообщение
вы вообще осознаете разницу между "правилами языка" и "закулисной кухней компилятора" ?
А ты?
Цитата Сообщение от hoggy Посмотреть сообщение
Ссылку можно и нужно воспринимать просто как текстовую метку:
Альтернативное имя может оказывать влияние на работу с памятью.
Цитата Сообщение от hoggy Посмотреть сообщение
от этого ровным счетом ничего не изменится.
Здесь уже были примеры, когда это влияло на исполнение программы.
Цитата Сообщение от hoggy Посмотреть сообщение
Это то, чем должен руководствоваться программист, который пишет код по стандарту.
Невозможно руководствоваться определением, когда не знаешь, что за ним может стоять.
Цитата Сообщение от hoggy Посмотреть сообщение
А вот полагаться, что она будет реализована через указатель - нельзя
Я нигде не писал, что можно полагаться. Надо знать, и учитывать. А не думать, что это просто метка без представления в памяти.
Цитата Сообщение от hoggy Посмотреть сообщение
На практике, остаток запаса на стеке никого не парит.
Это говорит о твоей квалификации.
Цитата Сообщение от hoggy Посмотреть сообщение
А тех, кого питух клюнул,
просто расширяют его волшебными ключами компилятора, и не заморачиваются.
Мда, вот что делает с людьми программирование под персоналки. Другого ничего в мире не видят.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
10.03.2015, 16:54
Цитата Сообщение от Tulosba Посмотреть сообщение
Спор, по сути, как раз выливается в то, как он реализован в конкретно взятом компиляторе. Хотя вроде бы и не хотели об этом спорить.
просто человек похоже не различает, где с++, а где компилятор.
кстати, я ни с кем не спорю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2015, 16:54
Помогаю со студенческими работами здесь

Возврат по ссылке
Вычитал давно еще, что если возвращать статический обьект из метода и присвоить его констатной ссылке то он продолжить жить пока видима эта...

Возврат по константой ссылке
Всем добрый день! И снова я с глупыми вопросами, простите заранее :-const int&amp; mysum(int&amp; num, int incr = 0) { num += incr;...

Наследование, возврат по ссылке..
Есть такое :wall:Я не могу понять, как реализовать :help: :wall:Подсказывать, как это можно сделать. :help: Вот мой #include...

Возврат результата из функции через параметр по ссылке
Здравствуйте уважаемый форумчане! Подскажите, как вернуть результат работы функции по ссылке? Как передавать параметр по ссылке в функцию я...

Как происходит присвоение значения переменной?
Здравствуйте. Какие способы присвоения значения существуют? Расскажите пожалуйста, как присваиваются значения при присвоении из...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru