我正在开发解决大约 100 个方程的代码。大多数这些方程都是在私有成员中计算的,因为最终用户并不关心它们。但是,现在我愿意。因此,当我开发代码时,我希望有一种快速的方法来测试私人成员。
下面的代码给出了我想要的基本行为,但它不起作用(隐私问题)。如果这种行为是可能的,我将不胜感激。
// Includes
#include <stdio.h>
// I want a general test class that can access private members
template <class Name> class TestClass{
public:
TestClass(Name& input) : the_class(input){}
Name& operator()(){ return the_class; }
Name& the_class;
};
// The class I want to test
class ClassA{
public:
friend class TestClass<ClassA>; // I hoped this would do it, but it doesn't
ClassA(){}
private:
void priv(){ printf("a private function\n"); }
};
// Main function that preforms the testing
int main (){
ClassA a;
TestClass<ClassA> b(a);
b().priv(); // I want to do this
}