У меня есть несколько классов, которые совершенно различаются по своему поведению, но в то же время имеют общие функции, которые должны обращаться к переменным-членам.
Итак, я хочу создать шаблонфункция-член, чтобы избежать дополнительного дублирования кода при копировании-вставке.
Окончательный результат должен выглядеть следующим образом:
ClassA::CallFoo()
ClassB::CallFoo()
ClassC::CallFoo()
где CallFoo () определен в общем файле, как [гипотетический синтаксис weirdo]
<template this* T>::CallFoo(){T->memberX->DoStuff();}
Возможно ли что-то подобное в C ++?Кажется, я не могу найти что-либо, касающееся повторного использования кода и нескольких классов.
EDIT: У меня есть несколько классов, ClassA, ClassB, ClassC, ... ClassX, каждый из которых имеет переменную-членmemberX.Чтобы использовать эту переменную-член внутри функций-членов классов, я должен выполнить некоторую настройку и предварительную обработку этой переменной, которая одинакова для всех классов.Поэтому ClassA может иметь метод DoCoolStuff1 (), который должен вызывать [общий код], чтобы получить обновленную общую переменную, а ClassB может иметь метод DoBoringStuff1 (), который также вызывает [общий код].
К сожалению, memberXне в моем исходном коде, а в заголовках библиотек ClassA: public LibClass, поэтому я не могу переопределить его там.