пятница, 19 марта 2010 г.

Перегрузка в C++

Взято из этой книжечки :

Перегрузка в C++ не требует обязательной перегрузки всех версий
visit, также не нужно отказываться от перегрузки конкретного члена
visit. Наряду с поддержкой концепций пространства имен, декларация
using позволяет вводить имена из базового класса в текущий класс
для перегрузки
Пример :

class Ctest
{

public :
void test ( float ) {}
void test ( char ) {}
void test ( int ) {}


};

class Ctest1: public Ctest
{

public:
using Ctest::test;
void test ( char* v ) {}

};


int main() {

Ctest1 obj;
obj.test ( 12.3 );
return 0;
}


И все работает без ошибок!
Если убрать using обьявление void test в Ctest1 скроет унаследованные test.

Комментариев нет:

Отправить комментарий