суть
есть программа под реверс
в ней уже точно на все 100% определена определенная группа функций
которые пренадлежат одному и тому же классу
выглядит это так
sub_1
sub_2
sub_3
sub_4
sub_5
sub_6
sub_7
sub_8
sub_9
sub_10
sub_11
...
sub_20
как извесно что в функциях класса первый аргумент это this
все функции уже разобраны
осталась одна под номером sub_8
абсолютно извесно что это точно функция этого же класса
но! есть один ньюанс, эот первый параметр этой функции не this
а пареметром этой функции под номером 8 идёт совсем другой класс, но! внутри функии через этот параметр инициализируються констуркторы этого другого класса
выглядит это так
назовем группу распознаных функций — классом A, а не известного класса — классом B
тогда функция под номером 1 или другие будут выглядеть как то так
sub_1(A arg0/* this */)
{
}
итд, другие функции этого A класса
за исключением функции под номером 8
выглядит она так
B sub_8(B arg0, A arg4)
{
...
if (..)
{
...
arg0.B::B(??); // под вопросами некие аргументы
...
} else
{
...
arg0.B::B(????); // под вопросами некие другие чем в первом случае аргументы
...
}
return arg0;
}
над первым арументом(arg0) кроме тех действий что я описал выше в функции, не происходит.
тоесть он используеться именно два раза как конструктор и далее возращаеться на выходе из функции
функция очень похожа на operator<<
но! меня настораживает что первый аргумент этой функции инициализируеться дважды в ней как конструктор!(и в этом я тоже на 100% уверен — именно два раза конструктор а не просто члены класса B)
но извесно то что в любой оператор передаеться ссылка & на обьект, и уже повторно он врядли сможет проинициализироваться?!
так же как видите функция sub_8 возращает этот же B класс
в теле кода где используеться эта функция, сразу же после использования ее разворачиваеться код деструктора B класса
помогите идентифицировать функции, и если можно пример ее использования