Опрос: исключения в конструкторе класса

Укажите проблемы в приведенном коде

  • Код не скомпилируется (из за 5 или 12, или 19-25 строк)

    Голосов: 0 0.0%
  • Конструктор класса вырабатывает исключение - это приведет к утечке памяти, т.к. деструктор не будет

    Голосов: 1 50.0%
  • В коде нет ни одной описанной выше проблемы

    Голосов: 1 50.0%

  • Всего проголосовало
    2
R

rrrFer

Гость
#1
В догонку к предыдущей теме "Используете ли вы исключения?" небольшой опрос на проверку знаний.

Вам дан исходный код:
Код:
#include <iostream>
#include <stdlib.h>
using namespace std;

struct StudentNameException {}; // 5

class Student {
  std::string m_name;
  int m_age;
public:
  Student(string name, int age)
    : m_age(age) {  // 12
      if (m_name == "")
        throw StudentNameException();
    }
};

int main() {
  try {  // 19
    Student student_1("testName", 25);
    Student student_2("", 22);
  }
  catch(StudentNameException) {
    std::cout << "exception handled\n";
  }  // 25
}