Diskuze: enum nelze deklarovat
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Problem je v tom ze enum nieje mozne forward-deklarovat (neviem ako sa to preklada), forward-deklaracia je deklaracia pri ktorej nieje definicia:
class A; //forward-deklaracia triedy A
//[...]
class A // definicia triedy A
{
//[...]
};
Ako som uz spomenul enum nieje mozne forward-deklarovat:
enum A; // chyba, enum nieje mozne forward-deklarovat
enum A
{
//[...]
};
Ak niekoho bude zaujimat Preco to nieje mozne: http://stackoverflow.com/q/71416/4932834
Naviac tam je tiez spomenute ze v C++11 to uz mozne je a ako to dosiahnut.
Spat k tvojmu problemu, troska nerozumies deklaraciam a definiciam, kazda definicia je zaroven aj deklaracia takze tym ze tam mas
#include "sachFigury.h"
v ktorom je enum barva_figury, riadok
enum barva_figury;
je nepotrebny, odstran ho a mas po problemoch. To iste plati aj pre ostatne deklaracie v tvojom kode:
class sachFigury;
struct figura;
class MyClass;
ktore su tiez nepotrebne.
Dufam ze sa na mna pismenka pre dlzne a makcene nehnevaju kedze mam anglicku klavestnicu.
Myslím, že forward v tomto prípade znamená globálna.
Nie celkom , forward-declaration je len dekláracia bez definície, nezáleží na tom kde je umiestnená:
int f()
{
class A;
}
class A
{
//[...]
};
.
Otazka je, k comu je to dobre.
Chapem, ak je to v hlavickovych suboroch, ale inde nevidim zmysel.
Prevazne sa zaujimam o cecko, nie c++, tam je to asi ine.
nene, když smažu
enum barva_figury;
problém se nevyřeší.
A když smažu
class sachFigury;
nebude to vědět co je sachFigury - další chyba, a to samé platí i o
struct figura;
No nic, už jsem se smířil s tim že to deklarovat nejde, nerozumim tomu proč, nedává to logiku, akorád musim kvůli tomu svůj projekt trochu přeorganizovat.
v subore sachFigury.h include-ujes myclass.h a v subore myclass.h
include-ujes sachFigury.h ... to asi nebude v poriadku s kostolnym poriadkom.
Ked este k tomu pridas fakt, ze v kazdom hlavickovom subore mas deklaraciu enumu
aj triedy (ci uz doprednu, alebo nie), tak sa ani necudujem, ze dostavas
error...
Dost mozne, ze sa mylim. No v kazdom pripade by si sem mohol post-nut error,
ktory dostavas.
No, includuju to, protože to všechno používám když to všechno smažu, taky mi to hází error, nebo vám to bez toho funguje? Nevim jak bych to měl napsat lépe.
Zobrazeno 9 zpráv z 9.