string initializing as NULL in C ++

string a=NULL;

it gives error. Why and how can I initialize string as NULL?

but when I write

string a="foo";

this it works fine.

Actually to get an empty std::string, you just write

std::string a;

std::string's default constructor will give you an empty string without further prompting.

As an aside, using NULL in C++ is generally discouraged, the recommendation would be to either use 0 (which NULL tends to be defined to anyway) or if you have a modern enough compiler, nullptr.