Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что онное обозначает?

32K
25 октября 2010 года
FVGK-2009
25 / / 19.01.2009
Member selection through a handle (^) uses the pointer-to-member operator (->).
(Взято из MSDN).
297
25 октября 2010 года
koodeer
1.2K / / 02.05.2009
Ох, ё...

Значок ^ в управляемом C++ означает то же, что и значок * в нативном C++ - указатель. Но ^ - это указатель на управляемый объект! То есть уборкой мусора после такого объекта будет управлять среда исполнения - CLR (потому и называется язык Managed - управляемый).

* используется в паре с new
^ используется в паре с gcnew (gc - garbage collector - сборщик мусора)

В нативном C++ память под объект, выделенный оператором new, должен быть удалён оператором delete, в управляемом C++ его удалит сборщик мусора. Хотя и в MC++ можно использовать delete (я во все его тонкости не вникал - ну его нафиг - C# рулит!)

Стрелка -> применяется в C/C++/MC++ одинаково: для доступа к членам объектов, размещённых в куче; на них указывает указатель. Точечная нотация применяется для доступа к членам объектов, размещённых на стеке.
Пример:
Код:
ref class ClassA
{
public:
    void Method()
    { }
};

...

ClassA ^a1 = gcnew ClassA(); // объект размещён в куче
a1->Method();

ClassA a2; // объект размещён на стеке
a2.Method();

Размер стека ограничен (обычно 1 Мб), поэтому всё в него не влезет.


На разных форумах часто приходится видеть как путаются в управляемом и неуправляемом цпп.
Терминология: managed c++ (MC++), C++.NET, C++/CLI - это всё управляемый цпп.
Узнать MC++ можно по ключевым словам ref, gcnew, по использованию знака ^, using namespace System.
Если используется /clr compiler option - название говорит само за себя - CLR - common language runtime - среда исполнения управляемого кода.


Напоследок выскажу имхо, что не стоит начинать изучение программирования с С++.NET. Лучше взять C# для знакомства со средой Framework .NET. Или взять нормальный С++. Лишь после глубокого освоения этих языков, можно познакомиться с мутантом C++.NET - он нужен в основном для объединения уже готового нативного и управляемого кода.

Мой вам совет: бросайте C++.NET. По нему и литературы мало, и используют его мало.
32K
25 октября 2010 года
FVGK-2009
25 / / 19.01.2009
А в С# мне не удаётся масштабировать текст (как в AutoCAD)
то есть загонять текст в существующую рамку (сжать-растянуть).
Поэтому я его забраковал.

Благодарю Koodeer, редко встретишь грамотных людей - в основном зелёные.
297
25 октября 2010 года
koodeer
1.2K / / 02.05.2009
А что именно не получилось? GDI+ позволяет творить чудеса. В частности, изменение масштаба делается одной командой ScaleTransform.
Всё, что умеет MC++, может и C#. И даже больше: для шарпа можно найти кучу исходников дополнительных библиотек и компонентов.
Если же используются возможности нативного C++ для масштабирования текста (какие?), то лучше всё приложение писать на обычном C++, без привлечения .NET. Имхо.

[COLOR="Silver"]PS а на зелёных(ого) гнать не надо... ;)[/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог