#include <iostream>
using namespace std;

class baseclass {
	protected:
	int field; 
	
	public:
	baseclass(baseclass const&) = delete;
	baseclass& operator=(baseclass const&) = delete;
	
	baseclass() : field(0) {}
	baseclass(int a) : field(a) {}
};

class derived1 : private baseclass {};

class derived2 : private baseclass {
	public:
	derived2() = default;
	derived2(derived2 const & other) {
		baseclass(other.field);
	}
	derived2& operator=(derived2 const& other) {
		field = other.field;
		return *this;
	}
};


int main() {
	// your code goes here
	
	derived1 d1;
	auto d1c = d1;
	
	derived2 d2;
	auto d2c = d2;
	
	return 0;
}