Ошибка C ++ при использовании удаленной функции при объявлении переменной в качестве члена класса - PullRequest
0 голосов
/ 30 июня 2018

Обычно я создаю класс A, а другой класс B объявляется членом класса A. Если я это делаю, я получаю сообщение об ошибке удаленной функции.

Однако, если я объявляю класс B в одной из функций класса A, я не получаю эту ошибку. Я получаю ошибку

.... неявно удаляется, потому что определение по умолчанию будет неправильно сформировано ... использование удаленной функции ...

Я знаю, что кто-то не может объяснить точную причину, по которой это происходит, но я не совсем понимаю, что означает эта ошибка и почему она происходит, только если я объявляю класс B членом, а не объектом в функция. Любое объяснение, почему или как отладить, почему это происходит?

Хотя код сложный, описываемое мной отличие выглядит следующим образом.

Это дает мне ошибку:

class A: public Base {

  void do_stuff();

  B obj_b;
}

Это не дает мне ошибку:

class A: public Base {

  void do_stuff()
  {
    B obj_b;
  };
}

Это также не дает мне ошибку:

class A: public Base {

  void do_stuff();

  static B obj_b;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...