nord vpnnord vpn
Ad

Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.2 kB
0
Indexable
Never
#pragma once

#include "driving_licence.h"
#include <iostream>
#include <string>

using namespace std::string_view_literals;

class InternationalDrivingLicence {
public:
	operator DrivingLicence()
	{
		return DrivingLicence();
	}

    InternationalDrivingLicence()
	{
		vtable = new DrivingLicence();
        this->vMethod = &InternationalDrivingLicence::PrintID;
		this->del = &InternationalDrivingLicence::Delete;
		std::cout << "InternationalDrivingLicence::Ctor()"sv << std::endl;
    }

    InternationalDrivingLicence(const InternationalDrivingLicence& other)
    {
         DrivingLicence a(*other.vtable);
        std::cout << "InternationalDrivingLicence::CCtor()"sv << std::endl;
    }

    ~InternationalDrivingLicence() 
	{
        std::cout << "InternationalDrivingLicence::Dtor()"sv << std::endl;
		delete vtable;
    }

    void PrintID() const 
	{
        std::cout << "InternationalDrivingLicence::PrintID() : "sv << ((IdentityDocument*)this)->GetID() << std::endl;
    }

	void Delete()
	{
		delete this;
	}
private:
	void (InternationalDrivingLicence::*del)();
	void (InternationalDrivingLicence::*vMethod)()const;
	DrivingLicence* vtable;
};

nord vpnnord vpn
Ad