Listing 3: Non-copy constructor

#include <iostream>
using namespace std;

class A
    {
public:
    A()
        {
        value = 'A';
        }
    A(A const &)
        {
        value = 'A';
        }
    char value;
    };

class B : public A
    {
public:
    B()
        {
        value = 'B';
        }
    B(B const &, bool = false)
        {
        value = 'B';
        }
    };

int main()
    {
    B b1;
    B b2(b1);
    cout << b1.value << endl;
    cout << b2.value << endl;
    return 0;
    }

/* expected (but not desired) run-time
   result

B
A

*/
— End of Listing —