Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
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 ");
}
}
}
#import
определенная для Microsoft вещь, по-видимому, для COM или материала.NET только.
#include
стандартный оператор препроцессора C/C++, используемый для включения заголовка (или иногда другой исходный код) файлы в Вашем файле исходного кода.
Импорт в VC ++: #import
для библиотек типов или .tlbs (материал COM).
содержание библиотеки типов преобразовывается в классы C++, главным образом описывая COM-интерфейсы для Вас автоматически, и затем это включено в Ваш файл.
#import
директива была представлена Microsoft как расширение языка C++. Можно читать об этом в эта статья .
MSDN #import
, директива также используется с.NET / материал CLI.
Импорт в gcc: импорт в gcc отличается от импорта в VC ++. Это - простой способ включать заголовок самое большее однажды только. (В VC ++ и GCC можно сделать это через #pragma
однажды также)
#import
, директива была официально неустаревшей gcc командой в версии 3.4 и хорошо работает 99% времени во всех предыдущих версиях gcc, которые поддерживают
, Включайте: #include
для главным образом заголовочных файлов, но предварительно ожидать содержание в Ваш текущий файл. #include
часть стандарта C++. Можно читать об этом в эта статья .
импорт был также одним из ключевых слов, связанных с n2073, Модули в C++ , предложенный комитету по языку Daveed Vandevoorde в сентябре 2006. Я - недостаточно фаната языка, чтобы знать, было ли то предложение окончательно отложено или если оно ждет реализации (подтверждение концепции) от автора или кого-то еще...
#import
полно решение обычного
#ifndef ...
#define ...
#include ...
#endif
обходное решение. #import
включает файл, только если он не был включен прежде.
Могло бы стоить отметить, что Objective C Apple также использует #import
операторы.
Обратите внимание, что в GCC 4.1 #import
устарел. Если вы используете его, вы получите предупреждение:
#IMPORT
является устаревшим расширением GCC