Действительно ли C++ CLI является надмножеством C++?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

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 ");
        }
    }
}
13
задан Laurent Etiemble 3 June 2010 в 13:06
поделиться

4 ответа

технически не, но завися, насколько стандартный код C++, Вы, вероятно, будете очень хорошо. при вхождении в материал окон, можно столкнуться с проблемами. Я скомпилировал целый игровой механизм, мы используем на работе в C++ / CLI однажды, и это работало просто великолепно. Коллега сделал то же для всего Mozilla и никакой такой удачи.

4
ответ дан 1 December 2019 в 22:58
поделиться

Согласно Википедия :

C++ / CLI должен считаться собственным языком (с новым набором ключевых слов, например), вместо C++, ориентированного на надмножество на Управляемый С++

10
ответ дан 1 December 2019 в 22:58
поделиться

Я являюсь все еще новым со своей кривой обучения на C++ / CLI - но у меня был тот же вопрос самого, и что я определил, до сих пор то, что C++ / CLI, как язык, надмножество стандартного C++.

Если Вы не будете использовать расширения CLI, то Ваш код C++ закончится как собственный неуправляемый код и должен быть по существу тем же, но скомпилированный в IL CLR, вместо собственного x86.

После того как Вы начинаете использовать расширения CLI (и начните попадать в использование объектов/дескриптора/управляемых классов), Вы начинаете взаимодействовать с базовой платформой CLR в большей степени. В той точке это по существу становится новым "языком", и необходимо будет разделить взгляды между "неуправляемой" стороной и "управляемой" стороной.

2
ответ дан 1 December 2019 в 22:58
поделиться

На странице 3 книги Маркуса Хиге «Эксперт C ++ / CLI.NET для программистов Visual C ++» говорится:

C ++ / CLI - это набор расширений, сделанных для язык C ++, чтобы воспользоваться преимуществами услуги, которые являются реализацией CLI предлагает.

И далее на той же странице:

C ++ / CLI - это надмножество языка C ++.

Его превосходная книга доступна бесплатно по адресу здесь .

1
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: