2016-03-22 22 views
0

Başka bir sınıfın işlevinde bir işlevi çağırmaya çalışan bu nesneye sahibim. Böyle (Oyun sınıfının) Başka bir nesneden bu işlevi çağırmak çalıştığınızdaC++: C2511: Aşırı yüklenmiş üye işlevi bulunamadı. 'this' kullanırken sorunlar

void play(Game *const currentGame, int x, int y); 

:

player->play(this, x, y) 

Ve derleme sırasında bu (sınıfın 'Oyuncu' Ait) gibi bu fonksiyon görünüyor böylece belki bir tür uyumsuzluğu burada neden orada ancak çıkaramadı.Microsoft, işaretçiler ve referans hakkında bazı temel ilkelerini eksikliği,

Error 1 error C2061: syntax error : identifier 'Game' c:\users\shaqed\documents\visual studio 2013\projects\exe3\tictactoe.h 24 1 Exe3 
Error 3 error C2511: 'void Player::play(Game *const ,int,int)' : overloaded member function not found in 'Player' c:\users\shaqed\documents\visual studio 2013\projects\exe3\tictactoe.cpp 40 1 Exe3 
Error 4 error C2660: 'Player::play' : function does not take 3 arguments c:\users\shaqed\documents\visual studio 2013\projects\exe3\tictactoe.cpp 158 1 Exe3 

Java geldi: Ben bu hataları olsun.

Şimdiden teşekkürler

+0

her zaman önce ilk hatayı düzeltmek. Diğerlerinin buna göre hataları olduğunu görüyoruz. Başlıktaki 'play' yönteminin bildirgesine ulaştığında, görünüşe göre 'Oyun' ne bilmiyor. Bu noktadan önce bildirilmiş mi veya önceden beyan edilmiş mi? – Cameron

cevap

0

yılında aynı derleme hataları ile sorununuzu tekrarladık. Metodunuzun sonunda vücuda eklemeyi unuttuğunu düşünüyorum. Gibi:

geçersiz oyun (const Oyun * currentGame, int x, int y) {}

+0

'Oyun * const currentGame', (muhtemelen ne amaçlanmış olsa da) kesinlikle geçerlidir. "CurrentGame" adlı bir parametreyi "const" (yöntem gövdesine yeniden atanamaz) ve "Game" nesnesini işaret eder. – Cameron

+0

Cameron kesinlikle haklısın. –

İlgili konular