Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
технически не, но завися, насколько стандартный код C++, Вы, вероятно, будете очень хорошо. при вхождении в материал окон, можно столкнуться с проблемами. Я скомпилировал целый игровой механизм, мы используем на работе в C++ / CLI однажды, и это работало просто великолепно. Коллега сделал то же для всего Mozilla и никакой такой удачи.
Согласно Википедия :
C++ / CLI должен считаться собственным языком (с новым набором ключевых слов, например), вместо C++, ориентированного на надмножество на Управляемый С++
Я являюсь все еще новым со своей кривой обучения на C++ / CLI - но у меня был тот же вопрос самого, и что я определил, до сих пор то, что C++ / CLI, как язык, надмножество стандартного C++.
Если Вы не будете использовать расширения CLI, то Ваш код C++ закончится как собственный неуправляемый код и должен быть по существу тем же, но скомпилированный в IL CLR, вместо собственного x86.
После того как Вы начинаете использовать расширения CLI (и начните попадать в использование объектов/дескриптора/управляемых классов), Вы начинаете взаимодействовать с базовой платформой CLR в большей степени. В той точке это по существу становится новым "языком", и необходимо будет разделить взгляды между "неуправляемой" стороной и "управляемой" стороной.
На странице 3 книги Маркуса Хиге «Эксперт C ++ / CLI.NET для программистов Visual C ++» говорится:
C ++ / CLI - это набор расширений, сделанных для язык C ++, чтобы воспользоваться преимуществами услуги, которые являются реализацией CLI предлагает.
И далее на той же странице:
C ++ / CLI - это надмножество языка C ++.
Его превосходная книга доступна бесплатно по адресу здесь .