#include<bits/stdc++.h>
using namespace std;
typedef struct trie
{
int arr[26];
bool isleaf;
trie(int isleaf)
{
this->isleaf=9;
cout<<isleaf<<endl;
isleaf=false;
cout<<isleaf<<endl;
cout<<this->isleaf<<endl;
}
}* tr;
//void inser(s)
int main()
{
tr k=new trie(3);
cout<<k->isleaf;
}
Adaequat und AusgängeStruct Variable Abfrage
3
0
1
1
Aber in
#include<bits/stdc++.h>
using namespace std;
typedef struct trie
{
int arr[26];
bool isleaf;
trie(int isleaf)
{
cout<<isleaf<<endl;
isleaf=false;
cout<<isleaf<<endl;
cout<<this->isleaf<<endl;
}
}* tr;
//void inser(s)
int main()
{
tr k=new trie(3);
cout<<k->isleaf;
}
ich
3
0
68
68
Ich verstehe, dass es nicht initialisiert ist, aber immer noch 68 warum?
Wenn ein normales bool verwenden entweder global oder innerhalb Funktion und ausdrucken, ohne i 0 erhalten Initialisierung, warum hier nicht?
Und kann jemand auch einige gute Quelle hinweist Zweifel über solche Variablendeklarationen zu löschen, öffentliche und private Konzepte und OOPS, Unterschied zwischen structs und Klassen usw.
Fragen nach dem Verhalten von undefiniertem Verhalten ist meist sinnlos. –
die Sache ist, ich frage nicht, welcher Wert zugewiesen wird. warum ein Bool gibt eine 68, wenn es sein soll, wenn 1 Bit –
Weil das war, was war, als das Programm geladen? Weil der verwendete Compiler initis immer auf 68 initialisiert? Weil das deine Glückszahl ist? – kabanus