У меня есть класс A, имеющий ряд частных/общественных функций-членов/переменных. Я добавил к нему новую функцию частного участника. В рамках тестирования недавно добавленного метода мне нужно вызвать функцию private member из моего тестового класса. В случае переменных-членов Я видел пример, как показано ниже:Доступ к частной функции-члена класса
#include <iostream>
using namespace std;
class test
{
private:
int myInt;
public:
int getInt() {return myInt;}
};
int main()
{
test t;
int* p = (int*) & t;
*p = 20;
cout << t.getInt();
}
Output:20
Есть ли надежный способ, которым я могу получить доступ к функции частного члена таким образом, что не существует никакой модификации кода в классе A
?
_ "так, чтобы в классе A не было модификации кода?" _ Нет! –
Нет, вы используете грязные трюки (возможно, U.B.), как тот, который вы используете в приведенном вами примере кода, или вы настраиваете класс. (BTW, я не вижу класса A в вашем коде.) – gd1
Как вы показали, есть способы, но вы можете повеселиться с неприличными типами, проститутками для методов в зависящих от платформы ботинками, а дилеры данных, использующие используемые библиотеки , Если это для модульного тестирования, у вас есть больше опций, также как и правильные точки. – dwn