Please consider this code.
#include <iostream>
using namespace std;
class sample
{
public:
    sample()
    {
        cout << "consructor called" << endl;
    }
    void test()
    {
        cout << "Test function" << endl;
    }
};
int main()
{
    sample *s = nullptr;
    try
    {
        s = new sample[50000000000000000000];
        cout << "allocated" << endl;
    }
    catch(bad_alloc& ba)
    {
        cout << ba.what() << endl;
    }
    s[1].test();
    return 0;
}
It is throwing the bad_alloc exception, but s[1].test(); prints test function on the screen. My doubt is if allocation is not successful, then how object can call the member function.
