Ez miért nem jó? Nem értem pedig jónak kellene lennie. Ha nem függvénnyel inicializálom akkor jó, de így nem.
//main.cpp
# include <iostream>
# include <cstring>
typedef unsigned short ushort;
typedef unsigned int uint;
using namespace std;
class String {
public:
static ushort Get_ConstructorCount() { return constructorCount; }
static void Set_ConstructorCount(ushort constcount) { constructorCount = constcount; }
private:
static ushort constructorCount;
protected:
};
void String::Set_ConstructorCount(0);
int main() {
return 0;
}
C:\Users\ALWAYS_WINS\Desktop\Qt mentések\Proba\main.cpp:18: error: variable or field 'Set_ConstructorCount' declared void
"variable or field 'Set_ConstructorCount' declared void"
Melyik része nem megy?
Ez a sor a fordítónak értelmetlen, a void csak paramétereknél és visszatérési értéknél szerepelhet, de ez egy ojjektumlétrehozásnak néz ki, ez a zárójelben szereplő konstansból látszik.
"void String::Set_ConstructorCount(0);"
Hát az pedig egy static függvény hívás.
Nem értem mi nem érthető a fordítónak.
String::Set_ConstructorCount(0);
Ez a része függvényhívásnak néz ki, de mivel csak úgy lóg a semmiben, nem egy függvény törzsében van, nem inicializálsz vele semmit, ezért nem lehet függvényhívás.
A fordítónak ez úgy néz ki, hogy egy String névtérben lévő Set_ConstructorCount nevű változót inicializálsz 0-val, ami void típusú.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!