Различие между управляемым C++ и [закрытым] 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 ");
        }
    }
}
49
задан Developer 13 November 2015 в 07:34
поделиться

6 ответов

Если не определенный, C++ является неуправляемым C++, скомпилированным в машинный код. В неуправляемом C++ необходимо справиться с выделением памяти вручную.

Управляемый С++ является языком, изобретенным Microsoft, которая компилирует в байт-код, выполненный Платформой.NET. Это использует главным образом тот же синтаксис в качестве C++ (отсюда имя), но компилируется таким же образом как C# или VB.NET; в основном только изменения синтаксиса, например, использующий '->' для указания члену объекта (вместо'.' в C#), с помощью '::' для пространств имен и т.д.

Управляемый С++ был сделан упростить переход от классического C++ до Платформы.NET. Это не предназначается, чтобы использоваться для запуска новых проектов (C# предпочтен).

57
ответ дан Laurent 7 November 2019 в 11:48
поделиться

"Управляемый С++" относится к языку, который был включен в Visual Studio. NET/VisualStudio. СЕТЕВОЙ 2003. Это с тех пор было , удержал от использования , с последним .net C++, являющимся C++ / CLI.

12
ответ дан Developer 7 November 2019 в 11:48
поделиться

Можно кодировать собственный C++ два различных пути. Первое компилирует непосредственно в машинный код только с операционной системой между Вами и Платформой (Аппаратные средства). Второе собственное кодирование сделано с MFC (Microsoft Foundation Classes). Это совпадает с первым примером за исключением использования MFC.

Управляемый С++ использует CLR (Общеязыковая среда выполнения), CLR наряду с .net библиотеками классов платформы составляет Платформу.NET. Этот управляемый С++ / стандарт CLI использует.Net платформу наряду с MSIL (промежуточный язык Microsoft). Этот стандарт работает путем отображения на машинный код только, когда программа выполняется при помощи как раз вовремя компилятор. Если Ваш код будет работать на различных аппаратных платформах, использование управляемого кода будет намного легче. Как со всей вещью существует небольшая цена для оплаты за удобство, поскольку собственный код будет работать быстрее.

3
ответ дан danio 7 November 2019 в 11:48
поделиться

Я думаю, что необходимо посмотреть этот вопрос .

2
ответ дан Community 7 November 2019 в 11:48
поделиться

Управляемый С++ означает, что выделение памяти, управление, сборка "мусора" обрабатывается виртуальной машиной. Принимая во внимание, что в "регулярном" C++ необходимо было бы выделить и освободить память.

0
ответ дан hayalci 7 November 2019 в 11:48
поделиться

Вы будете использовать управляемый С++, когда захотят пользоваться собственной библиотекой класса C++ от управляемого кода. В этом случае Вы обертываете неуправляемые классы в управляемого С++, тогда Вы используете их на любом языке CLR.

0
ответ дан radu_c 7 November 2019 в 11:48
поделиться
Другие вопросы по тегам:

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