І ще, стосовно помилок: C і C++ користуються купою скорочень і багатозначних символів і, як наслідок, маленька помилка може перекрутити сенс виразу у щось зовсім інше (наприклад, < може означати порівняння, зсув і інстанціювання шаблону, залежно від сусідніх символів); тому компілятор часто неправильно "відгадує" ваші наміри і може давати неправильні поради. Конкретно у вашому випадку:
... << Ork[0]->GetX << ...
Компілятор розуміє, що GetX - це функція, але не знає, що ви з нею збиралися робити. Можливо, взяти адресу, можливо, викликати, можливо, щось інше? Тому і пише: оскільки списку аргументів, як треба для виклику функції, нема, можливо, треба було адресу взяти &Ork[0]->GetX? Ну а коли ви спробували це зробити
... << &Ork[0]->GetX << ...
почався вже ад: це не просто функція, а функція-член класу; але ви намагаєтеся взяти не просто адресу цієї функції (правильно &Sprites::GetX), а адресу цієї функції для конкретного екземпляру, тобто результат зв'язування, а оскільки до лямбда-числення ви ще явно не дісталися, то це виглядає для вас якоюсь китайською грамотою...