if(newTst->Fun1()) {
printf("hello Fun1 1111\n ");
}
if(!newTst->Fun1() || newTst->Fun1()) {
printf("hello 2222 \n ");
}
From the first if statement, it is obvious that newTst->Fun1() returns false, so only in the next if statement succeeded and the result is printed as stated by you