- Solution
This lesson explains the solution to the exercise in the previous lesson.
We'll cover the following...
Solution #
#include <iostream>class A{};class B{};class MyClass{public:MyClass(){}explicit MyClass(A){} // since C++98explicit operator B(){return B();} // new with C++11};void needMyClass(MyClass){};void needB(B){};struct MyBool{explicit operator bool(){return true;}};int main(){// A -> MyClassA a;// explicit invocationMyClass myClass1(a);// implicit conversion from A to MyClassMyClass myClass2=a;needMyClass(a);// MyClass -> BMyClass myCl;// explicit invocationB b1(myCl);// implicit conversion from MyClass to BB b2= myCl;needB(myCl);// MyBool -> bool conversionMyBool myBool;if (myBool){};int myNumber = (myBool)? 1998: 2011;// implict conversionint myNewNumber = myBool + myNumber;auto myTen = (20*myBool -10*myBool)/myBool;std::cout << myTen << std::endl;}
...