[ÇÖZÜLDÜ]Obje tanımlama sorunu
-
sorunun biri biter diğeri başlar.
Neyse bende aynı amaca yazılmış iki tane birbirinden biraz farklı iki ufak program var.Sorunum şimdi
A sınıfından B sınıfı form türetiyorum bu B sınıfından butona tıkladığım zaman A sınıfında belirli fonksiyonu çalıştıracağım.İzlediğim yol iki programdada aynı Ama biri çalışırken diğerinde bu yol çalışmıyorclass A{
//CPP DOSYASI
void yenile(){ birşeyler}
void Getir(){
B *b = new B;
b->setParentThis(this);
b->show();
}
}
class B{
A obje;//Header dosyasında tanımladığım global obje//CPP dosyası içinde
void setParentThis(A *a){
obje = a;
}void click(){
//tıklandığında ana formdaki fonksiyonu çalıştırıcak
obje->yenile();
}}
Çalışma şekli böyle A'dan B'yi çağırdımda B'deki global A Sınfı Objesini setParentThis ile A'ya eşitliyorum
sonrada B Classından global obje ile istediğim gibi A Forumunu yönlendiriyorum.
Bu yol bir prog. çalışırken diğerinde çalışmadı .
Aldığın Hatasyntax error identifier 'A';
syntax error:missing ';'before *;
error: C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C2660: 'CariEkle::setParentThis' : function does not take 1 arguments -
Arkadaşlar Sorunu zorda olsa çözdüm.Sorun Başlık dosyalarından kaynaklanıyormuş.Mesela A ve B Classı olsun.
Ben B Classından A Classı obje yaratmak için A.h dosyasını B.h dosyasına include ettim diyelim bu şekilde bir sorunla karşılaşmayacaksınız ama
Üstteki includu yaptıktan sonra A Classında A.h dosyasına B.h dosyasını include ederseniz ve A.h içinde global bir B Objesi tanımlarsanız size "'...' does not name a type(MinGW Compiler) diye bir hata verecek