You're never declaring an object at all. Instead, you've declared a function, and so there's no constructor needed at all. (Note that ClassB()
denotes a function type!)
If you want to construct an object from a temporary, try one of these syntaxes:
ClassA x1 { ClassB{} }; // C++11 only
ClassA x2((ClassB())); // parenthesized expression is never a type declaration