اگر در تابع main از return 0 استفاده نکنید و برنامه با موفقیت به پایان برسد کامپایلر فرض میکند که return 0 وجود دارد. این فقط برای تابع main درست است و بقیه توابع باید مطابق نوعشان مقدار بازگشتی داشته/نداشته باشند. مثلا در دو مورد زیر کامپایلر return 0 را در نظر میگیرد؛ در اولی به طور ضمنی و در دومی به طور صریح:
int main() {
cout << "Hi";
}
int main() {
cout << "Hi";
return 0;
}
تعریف کردن تابع main از نوع void (بدون مقدار بازگشتی) در C++ استاندارد نیست و حتی در C. * ولی ممکن است بعضی کامپایرها (مثلا turboc) ایراد نگیرند.