KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Here is the little code snippet: class A { public: A(int value) : value_(value) { cout <<"Regular constructor" <<endl; } A(const A& other) : value_(other.value_) { cout <<"Copy constructor" <<endl; } private: int value_; }; int main() { A a = A(5); } I assumed that output would be "Regular Constructor" (for RHS) followed by "Copy constructor" for LHS. So I avoided this style and always declared variable of class as A a(5); . But to my surprise in the code above copy constructor is never called (Visual C++ 2008) Does anybody know if this behavior is a result of compiler optimization, or some documented (and portable) feature of C++? Thanks.
Tags (comma-separated)
Save Edits
Cancel