【发布时间】:2020-09-23 08:26:21
【问题描述】:
我是第一次使用 GMock,我正在使用纯虚拟方法模拟一个类, 我从 Mock 类创建了一个实例
MockInterface mockIntr;
然后我需要将此模拟作为参数传递给另一个函数
func->action(std::make_shared<MockInterface>(mockIntr);
在这种情况下,我得到了错误: “C2280 : MockInterface::MockInterface(const MockInterface&) : 尝试引用已删除的函数”
我不确定解决方案是在 MockInterface 类中创建一个复制构造函数,还是有其他方法可以解决此问题。
【问题讨论】:
-
MockInterface的构造函数定义是什么?,默认的复制构造函数是否标有delete? -
复制构造函数在基类中被标记为删除(我从中创建了 MockInterface)
-
然后你必须明确指定一个(它使用基类的可行构造函数)。顺便说一句,从其他类继承接口是不寻常的。
标签: c++ googlemock