Есть ли в С++ способ при написании кода ограничить доступ к некоторым функциям класса? Чтобы в каком-нибудь IDE в одном случае в подсказке предлагался, скажем, только f1, а f2 и f3 нельзя бы было использовать. А в другом случае (например, класс шаблонный, и в этом другом случае шаблоном передан другой тип данных) "подсказывались" бы все три метода. Т.е. позволит ли С++ перегрузить конкретный шаблон класса
template <typename T>
class Test
{
public:
void f1();
void f2();
void f3();
}
чтобы, например, при написании в коде
Test<int>().
IDE предлагал в подсказке все три метода, а при
Test<double>().
открыт был бы только f1? Чтобы f2 и f3 не отображались в подсказке. Возможно, есть способ решения без использования шаблонов?
#defineнапример#define hide1(a) aа потомType1 hide1(func1)()в borland работает, а в студии незнаю. – nick_n_a Jul 16 '19 at 12:43#define#ifdef#else#endизучайте директивы предпроцессора - и творите чудеса (если ваши со-служивцы не обидятся). Если команда из одного человека - вас - то не вижу в этом смысла. Используя ООП - такие чудеса сделать не получится. – nick_n_a Jul 16 '19 at 12:46friend-функции/класса. Может вам нужноtemplate. – nick_n_a Jul 16 '19 at 12:53