0
点赞
收藏
分享

微信扫一扫

ubuntu环境下安装electron环境,并快速打包

SPEIKE 2024-12-02 阅读 13

强制子类实现方法,基类只提供组成,通常称之为接口

class Entity
{
	public:
		virtual std::string GetName() = 0 //前面加virtual
}
class Player : public Entity
{
private:
	std::string m_Name;
public:
	Player(const std::string& name : m_Name(name)){}
	std::string GetName() override { return m_Name;} //c++11引入添加override
}

void PrintName(Entity *entity)
{
	std::cout << entity->GetName() << std::endl; 
}

int main()
{
	Entity* e = new Entity;
	PrintName(e)
	
	Player* p = new Player("Cherno");
	PrintName(p)
	
	std::cin.get();
	return 0;
}
  • 纯虚函数必须被子类实现,才能创建这个类的实例。
  • 因为基类只保留组成,所以无法创建实例。

当然子类也可以只声明,实现放在.cpp中实现

base.h

class Entity
{
	public:
		virtual std::string GetName() = 0 //前面加virtual
}
class Player : public Entity
{
private:
	std::string m_Name;
public:
	Player(const std::string& name : m_Name(name)){}
	std::string GetName() override; //c++11引入添加override,不在这实现
}

other.cpp

#include "base.h"

std::string Player::GetName(){
	return m_Name;
} 

main.cpp

int main()
{
	Entity* e = new Entity;
	PrintName(e)
	
	Player* p = new Player("Cherno");
	PrintName(p)
	
	std::cin.get();
	return 0;
}

举报

相关推荐

0 条评论