#include #include using namespace std; // a class with a default parameter value for the constructor class BlabT{ public: //BlabT() = delete; /*{ cout << "In the BlabT constructor message = empty" << endl; } */ BlabT(string msg="None Given") { cout << "In the BlabT constructor message = " << msg << endl; } }; class TalkT { public: TalkT(string s): msg{s}{ cout << "In the TalkT constructor, msg = " << msg << endl; }; string Msg() { return msg; } private: string msg {"BAD, you should not see this"}; }; class ComplexT{ public: ComplexT():b2("a"), t2("b"), t1(t2.Msg()), data(4) { cout << "In the default complex constructor" << endl; } ComplexT(string p1, string p2 = "s2"): b2(p1), t1(p2), t2("hello"), data(3) { cout << "In the other complex constructor" << endl; } private: BlabT b1{"Default in line initialization"}; BlabT b2; BlabT b3; TalkT t1; TalkT t2; int data; }; int main() { cout << " No parameter blabber " << endl; BlabT blab0; cout << endl << "blabber with a parameter " << endl; BlabT blab1("This is a message"); cout << endl << " A talker " << endl; TalkT talk0("hello"); cout <