基本上,我正在创建一个类A,而另一个类B被声明为类A的成员。如果执行此操作,则会使用已删除的函数错误。
但是,如果我在类A的函数之一中声明了类B,则不会出现此错误。我得到的错误是
....被隐式删除,因为默认定义会格式不正确...使用已删除的功能...
我知道某人无法解释发生这种情况的确切原因,但是我真的不理解该错误的含义以及为什么只有在我声明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;
}