Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782

Синтаксис в Visual C++. Объяснить некоторые фрагменты кода

04.01.2012, 21:57. Показов 7143. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Возникли некоторые вопросы, связанные с синтаксисом.
ПС: Программу нашел в интернете, пытаюсь разобраться, многое непонятно
Буду признателен! Хотя бы на то, что знаете

^ - что это и зачем? Почему где-то одно двоеточие, где-то два. И вообще что означает двоеточие, если по-простому. System::Object^ sender, System::EventArgs^ e - если можно тоже несколько слов.
C++
1
1.private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
что такое gcnew?
C++
1
2.this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
что такое cli, safe? Как понять вообщем строку эту?
C++
1
3.(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit();
Таж же прошу объяснить этот фрагмент кода. Что такое "C"
C++
1
2
4.System::String ^x;
  x = "Total price: " + total.ToString("C");
ResumeLayout за что отвечает
C++
1
5.this->ResumeLayout(false);
PerformLayout за что отвечает
C++
1
6.this->PerformLayout();
Я могу понять что такое void NameOfSomeMethod...., но как понять void внутри скобок?
C++
1
2
3
4
5
7.public:
        Form1(void)
        {
                      //konstruktor
        }

Таж же прошу объяснить этот фрагмент кода. Что такое ref здесь?
C++
1
8.public ref class Form1 : public System::Windows::Forms::Form
И несколько слов по этому фрагменту
C++
1
2
3
4
5
9.private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.01.2012, 21:57
Ответы с готовыми решениями:

Объяснить фрагменты кода
Доброго времени суток, дорогие программисты. Помогите чайнику в &quot;плюсах&quot; найти что такое &quot;Ar&quot; Вот код #include...

Объясните некоторые фрагменты кода
всем привет, если незатруднит, проясните как работает одна функция в данном коде: #include&lt;stdlib.h&gt; #include&lt;stdio.h&gt; ...

Объясните пожалуйста некоторые фрагменты кода?
Объясните пожалуйста некоторые фрагменты кода? ОБЪЯСНИТЬ ЗНАЧЕНИЕ СЛЕДУЮЩИХ ФРАГМЕНТОВ КОДА: 1)$conn =...

3
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
04.01.2012, 23:04
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от androidos Посмотреть сообщение
^ - что это и зачем?
Это операция, аналогичная объявлению указателя в обычном C++, только с тем различием, что объекты, имеющие тип "управляемых" указателей, размещаются на управляемой куче, в отличие от обычных указателей C++, которые смотрят на объекты только в неуправляемой куче.
Цитата Сообщение от androidos Посмотреть сообщение
Почему где-то одно двоеточие, где-то два.
Оператор :: существует для того, чтобы можно было обращаться к тем функциям, типам, и переменным, которые лежат в каких-либо пространствах имён, либо полям, принадлежащим определённому классу. То есть если у нас есть, например, функция Sqrt, которая является членом класса Math, который лежит в пространстве имён System, то вызов этой функции будет выглядеть так:
C++
1
System::Math::Sqrt(x);
Одно двоеточие используется при определении областей видимости в классе и при наследовании одного класса от интерфейсов, либо от других классов.

Цитата Сообщение от androidos Посмотреть сообщение
System::Object^ sender, System::EventArgs^ e - если можно тоже несколько слов.
sender — ссылка на тот объект, который вызвал то событие, которое в данный момент обрабатывается, в данном случае, нажатие кнопки на форме. EventArgs — в этом объекте хранится дополнительная информация, которая передаётся обработчику события. Тут могут передаваться какие то дополнительные параметры, обеспечивающие более полный контроль за поведением программы в обработчике ошибок в ответ на какое то действие. То есть, например, по-умолчанию, объект EventArgs ничего существенного не содержит, но, например, для обработки событий мышки, используется объект типа MouseEventArgs, производный от EventArgs,в котором можно найти координаты того места, где был курсор мышки, когда произошло событие.
Цитата Сообщение от androidos Посмотреть сообщение
что такое gcnew?
операция выделения памяти для одного или нескольких управляемых объектов на управляемой куче.
Цитата Сообщение от androidos Посмотреть сообщение
(gcnew System::Windows::Forms::CheckBox());
Тут выделяется память для одного объекта типа System::Windows::Forms::CheckBox с конструктором по-умолчанию (пустые скобочки после типа).
Цитата Сообщение от androidos Посмотреть сообщение
что такое cli, safe? Как понять вообщем строку эту?
cli — особое пространство имён, использующееся в C++/CLI, в котором хранятся такие типы и операторы, как cli::array —управляемые массивы, cli :: pin_ptr — "прибитые" указатели, запрещающие перемещать сборщику мусора среды CLR объекты на управляемой куче, cli::interior_ptr — указатели в область данных управляемого объекта, cli::safe_cast — оператор безопасного приведения типов. работает он так: safe_cast<T>(object) преобразовывает тип объекта object в тип T, если преобразование в тип T невозможно, тогда выдаётся исключение типа InvalidCastException.

Цитата Сообщение от androidos Посмотреть сообщение
Как понять вообщем строку эту?
тут объект типа PictureBox на форме, преобразовывается к типу интерфейса System::ComponentModel::ISupportInitiali ze, у которого есть объявление метода EndInit, затем, чтобы вызовом этого метода завершить инициализацию объекта PictureBox.
Цитата Сообщение от androidos Посмотреть сообщение
Таж же прошу объяснить этот фрагмент кода. Что такое "C"
total.ToString("C") — это приведение числа total к строковому типу с использованием формата перевода в денежное представление ( за этим как раз "C" и нужно ), то есть, если задана например американская локализация по-умолчанию, то число 100.0 будет переведено в форму типа $100.0. Далее это строковое денежное представление числа соединяется со строкой "Total price: " с помощью оператора +, а результат — строка вида "Total price: $100.0", где $100.0 определяется тем, какая стоит локализация и какое число находится в total — помещается в переменную x.
Цитата Сообщение от androidos Посмотреть сообщение
Я могу понять что такое void NameOfSomeMethod...., но как понять void внутри скобок?
void внутри скобок, ограничивающих параметры функции, является совершенно бесполезным, это будет то же самое, если написать
C++
1
Form1()
То есть обозначение того, что функция не принимает параметров. Наследие языка C, слегка поменявшее свою смысловую нагрузку, в C++ и C++/CLI использование void в списке параметров функции — абсолютно бесполезно.
Цитата Сообщение от androidos Посмотреть сообщение
Таж же прошу объяснить этот фрагмент кода. Что такое ref здесь?
здесь ссылочный класс (ключевое слово ref class) с именем Form1 наследуется от класса System::Windows::Forms::Form. Все классы .NET разделяются на два типа: ссылочные классы и классы-значения. Что такое ссылочные (или иначе ref) классы, и как они отличаются от типов-значений, можно прочитать в любой литературе по C#.
Цитата Сообщение от androidos Посмотреть сообщение
И несколько слов по этому фрагменту
здесь объявляется переменная для дизайнера форм, которая представляет собой контейнер для компонентов формы, для того, чтобы потом при освобождении ресурсов формы, освободить ресурсы, занимаемые каждым компонентом, который входит в этот контейнер, то есть просто удобный ход для очистки ресурсов.

И вообще, всё, что можно использовать в том же C#, можно использовать и в C++/CLI, если имеется ввиду программирование под .NET, так что если Вам требуется справочная информация по каким-то классам .NET или ещё чему-то, относящемуся к .NET, то подойдет любая традиционная литература , посвященная языку C#, различия тут только в синтаксисе, но его можно всегда подглядеть на таких ресурсах, как например, MSDN, он должен являться первым местом, куда Вы должны заглянуть при возникновении каких-то проблем с пониманием или сомнений, ибо там с большой вероятностью есть ответы на интересующие вопросы, надо лишь немного поискать.
9
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
04.01.2012, 23:28  [ТС]
Спасибо, добрый человек. Постараюсь переварить всё это.
0
0 / 0 / 0
Регистрация: 09.08.2012
Сообщений: 4
19.07.2013, 18:41
Реально добрый чел , чувак ты лучший
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.07.2013, 18:41
Помогаю со студенческими работами здесь

Декомпиляция, dotPeek: объяснить множественные фрагменты кода
Здравствуйте. В результате декопиляции одного проекта, я получил в целом нормальный исходник, за исключение разбросанных по всему коду...

Объяснить, для чего нужны указанные фрагменты кода
class foo { //variables public: protected: private: //functions public: foo();

программа работает алгоритм работы понимаю только как некоторые фрагменты кода работают не понятно!
вопросы написал в комментариях посмотрите пожалуйста! using System; using System.Collections.Generic; using...

Объяснить некоторые участки кода
Нашел нужный мне код для реализации моделирующего алгоритма но есть некоторые неясности. Вот код: ...

Объяснить некоторые участки кода (создание класса: методы, перегрузки, .)
Мне помогли написать код using System; internal class Complex : IEquatable&lt;Complex&gt; { // int a действительная часть - int...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru