как вызывать методы определенных классов из методов класса шаблона - PullRequest
2 голосов
/ 07 июня 2011

Как мне вызвать метод в пределах определенного класса из метода шаблонного класса?Ниже мой сценарий -

  1. Шаблон класса

    template <class T>
    class TC {
        void myTemplateMethod() {
            T.myMethod();  //can I call like this ?
        }
    }; 
    
  2. Определенный класс

    class tdef {
        void myMethod() { 
            //does something
        }
    };
    
  3. Main

    int main()  {
        TC<tdef> tobj;
        tobj.myTemplateMethod(); //can I call tdef.myMethod() like this?
    }
    

Просто заметьте, что я отладил подобный код и обнаружил, что tdef.myMethod () не работает при таком вызове.Также есть ли вероятность того, что некоторые исключения не будут обработаны при вызове tdef.myMethod () из метода класса Template?

-Somnath

1 Ответ

6 голосов
/ 07 июня 2011

Это нестатическая функция-член, поэтому ее можно вызывать только для экземпляра.Шаблоны не меняют этот факт.

T t;
t.myMethod();

или если функция была статической:

T::myMethod();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...