c_cpp C ++中的小型多态系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C ++中的小型多态系统相关的知识,希望对你有一定的参考价值。

#include <iostream>

// Sample abstract object tree implementation



// Type class
struct LangType
{
	enum Type
	{
		Type_int,
		Type_add
	};
};

// Base Object Class
class LangObject : protected LangType
{
public:
	LangType::Type getType(void) const
	{
		return _type;
	}

	void setType(LangType::Type type)
	{
		_type = type;
	}

	//virtual void operator()();
private:
	LangType::Type _type;
};

// Smart ptr-like class that holds a Lang Object ptr
class LangPtr
{
private:
	LangObject* _data;
};

class LangInt : public LangObject
{
public:
	LangInt(int num = 0): _int(num)
	{
		setType(LangType::Type_int);
	}
	~LangInt()
	{}

	int getInt(void) const
	{
		return _int;
	}
private:
    int _int;	
};







int main(int argc, char const *argv[])
{
	LangInt* test = new LangInt(5);
	LangObject* parent = test;
	std::cout << parent->getType() << std::endl;
	LangInt* newtest = static_cast<LangInt*>(parent);
	std::cout << newtest->getInt() << std::endl;
	delete test;
	return 0;
}

以上是关于c_cpp C ++中的小型多态系统的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C中的多态,虚函数和继承

c_cpp C中的小型随机字符串生成器

c_cpp 读取文件中的所有字节 - 来自“Linux系统编程”一书

类 C 语言中的返回类型多态性

整理uclibc,eglibc,glibc之间的区别和联系

C++--多态