c++ interface code example

Example 1: interfaces in c++

#include <iostream>
#include  <string>
//Pure virtual function or inteface allows us to define a function in a base class that doesn't have an implementation or definition in the base class and force sub classes to implement that function
//Pure virtual function is also called an interface in other languages
class Entity {
public:
	//virtual std::string GetName() { return "Entity"; }//This is a function that is just virtual .Overriding this function in sub class is optional we can instantiate subcllass without overriding  or implementing this function
	
	//Below is an example a Pure Virtual Function
	//It is an unimplemented function ant it forces the  sub class to implement it and define it
	//You will not be able to instantiate sub class without implementing or defining the function in sub class
	virtual std::string GetName() = 0; 
  //the pure virtual function must have virtual written at the beginning and =0 at the end
 //This function cannot contain any definition in base class,it is just a declaration
};
class Player :public Entity {
	std::string m_name;

public:
	Player(const std::string& name)
		:m_name(name)
	{};
	void Print() { std::cout << "This is Sub class" << std::endl; };
	std::string GetName()override { return m_name; };//Pure virtual functions is implemented here in this sub class
};

int main()
{
	//Entity a;//We can't do this because class Entity contains function that is unimplemented
	Player x("Jacob");//This will work because we have implemented or defined the function in this sub class
	std::cin.get();
}

Example 2: interface in c++

class IDemo
{
    public:
        virtual ~IDemo() {}
        virtual void OverrideMe() = 0;
};

class Child : public IDemo
{
    public:
        virtual void OverrideMe()
        {
            //do stuff
        }
};

Example 3: interface in c++

class IDemo
{
    public:
        virtual ~IDemo() {}
        virtual void OverrideMe() = 0;
};

class Parent
{
    public:
        virtual ~Parent();
};

class Child : public Parent, public IDemo
{
    public:
        virtual void OverrideMe()
        {
            //do stuff
        }
};

Tags:

Cpp Example