1 #include <cmath> 2 #include <assert.h> 3 4 class A { 5 public: 6 int a; 7 double b; 8 A()9 A() : A(0, 0) {} A(int _a)10 explicit A(int _a) : A(_a, 0) {} A(double _b)11 explicit A(double _b) : A(0, _b) {} A(int _a,double _b)12 A(int _a, double _b) : a(_a), b(_b) {} 13 }; 14 main()15int main() { 16 A instance(1, 1.5e0); 17 assert(instance.a == 1); 18 assert(std::abs(instance.b - 1.5) < 1e-8); 19 20 A instance1(1); 21 assert(instance1.a == 1); 22 assert(std::abs(instance1.b) < 1e-8); 23 24 A instance2(1.5); 25 assert(instance2.a == 0); 26 assert(std::abs(instance2.b - 1.5) < 1e-8); 27 28 A instance3; 29 assert(instance3.a == 0); 30 assert(std::abs(instance3.b) < 1e-8); 31 return 0; 32 } 33