#include <iostream>
using namespace std;
class Interface
{
public:
	Interface() = default;
	virtual ~Interface() = default;
	Interface(const Interface&) = delete;
	Interface& operator=(const Interface&) = delete;
	Interface(Interface&&) = delete;
	Interface& operator=(Interface&&) = delete;
	
	virtual void Foo() = 0;
};
class Derived : public Interface
{
public:
	void Foo() override
	{
		cout<<"@@"<<endl;	
	}
};
int main() {
	
	Interface* impl = new Derived();
	impl->Foo();
	// your code goes here
	return 0;
}