jjzjj

ConstructorKey

全部标签

c++ - 强制一个特定的构造函数只在某些代码中使用,别处

有时,我们需要提供一个专门用于测试的构造函数。我们怎么能强制这样的构造函数只用于测试代码,没有其他地方。我只是想知道这是否可以在c++11/14中实现。例如,classA{public:A()=default;//usedonlyintestcode}classA_Test:public::testing::Test{private:Aa;//itisok.};classA_Production{private:Aa;//compilererror}我可以想象使用friend装饰器并将特定的构造函数放在protected中以限制访问。但是遗留代码中也有其他现有的friend。是否可以制