No, they are not exactly equivalent (the assignment in not considered an explicit context, so if you have a constructor marked as explicit, it will create a compile error).
But you are right in that it invokes the copy constructor instead of creating a temporary and then the assignment operator.

But One thing more...Why the IDE returns an error time and again(but sometimes ignore it) in the followings(errors commented)

A guess, but...
Did you remember to include <string>? If not, you might get that error.

Originally Posted by Adak

io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.

Originally Posted by Salem

You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

Post the smallest and simplest program that you expect should compile but which results in the "Still the SAME!!!" error.

Originally Posted by Bjarne Stroustrup (2000-10-14)

I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.

No, they are not exactly equivalent (the assignment in not considered an explicit context, so if you have a constructor marked as explicit, it will create a compile error).

Elkvis' observation was concerned with copying a std::vector<int>, and was correct, since std::vector's copy constructor is not "marked as explicit".

Right 98% of the time, and don't care about the other 3%.

If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.