-2
#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;
}
工作正常,並輸出結構變量查詢
3
0
1
1
但
#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;
}
我得到
3
0
68
68
我明白,這是未初始化的,但仍爲什麼68?
如果使用普通布爾無論是在全球還是內部的功能和打印而無需初始化我得到0,那麼爲什麼不在這裏?
而且可有人還指出一些良好來源用來清除這樣的變量聲明,公共和私人的概念,和OOPS,區別結構和類等
問計的未定義行爲的行爲大多是徒勞的。 –
的事情是我不是問什麼價值被分配給它。 爲什麼布爾給出了68時,它應該是,如果1位 –
,因爲這是在那裏程序加載時?因爲您使用的編譯器始終將整數初始化爲68?因爲那是你的幸運號碼? – kabanus