*
в C++ означает, что это указатель на объект.
Инициализация указателя на NULL
означает, что он указывает на никуда (кстати, в настоящее время лучшей альтернативой станет nullptr
).
Обычно, в данный момент в вашем коде, вы найдете некоторые заявления вроде:
if (Object2 == NULL) // if not pointing to an object
Object2 = new Class2; // create a new one
Большинство книг по C++ объяснить указатели в глубину.
Итак, моим первым ответом будет «Язык программирования C++» от B.Stroustrup.
Некоторые онлайн-уроки: here и here.
Edit: Язык MQL4
В языке MQL4, который был исторически на основе C-как конструкты синтаксических и последние (после сборки 509) расширений принесло несколько больше (заимствованный из области MQL5), то *
также является указателем на объект, а new
создает объект динамически. Но в отличие от C++, это не прямой указатель на место памяти, а косвенный указатель, использующий концепцию descriptor.
Предопределенная постоянная переменная NULL
означает - как в C++ - что нет значения. Он может быть назначен переменным любых других фундаментальных типов без преобразования. Допускается сравнение основных переменных типа с значением NULL
.
В «New-MQL4» (post Build 509) NULL
также можно сравнить с указателями на объекты, созданные с помощью оператора new
.
(Спасибо user3666197 за дополнительную MQL4 конкретной информации)
Учитывая уровень этого вопроса, следует добавить базовую грунтовку на C++, с особым вниманием к указателям, '' NULL' и nullptr'. – Deduplicator
Я вижу. Im кодирование в MQL, которое не поддерживает nullptr. Объект if null создает больше смысла. Я взял несколько курсов, но раньше этого не видел. У меня достаточно сейчас, чтобы углубиться в книги, зная теперь, в какой области меня. Спасибо всем. – Barklem