C++类通过模板成员函数实现任意类型类实例的函数调用

发布时间:2024年01月04日

最近设计中遇到比较挠头的一个问题,就是如何通过类模板成员函数(由于设计需要,难以通过模板类实现)实现多种类型的访问,先给出问题在哪里,用一个简单的例子说明,例子如下:

class Dog {
	int age;
	std::string name;
public:
	void init(std::string dname, int dage) {
		name = dname;
		age = dage;
	}
	void print() {
		std::cout << "dog " << name << " age " << age << std::endl;
	}
};

class Cat {
	int age;
	std::string name;
public:
	void init(std::string dname, int dage) {
		name = dname;
		age = dage;
	}
	void print() {
		std::cout << "cat " << name << " age " << age << std::endl;
	}
};
class PrintCla {
	public:
	template<typename T>
	void print(T* animal) {
		ainmal->print();
	}
};
int main() {
	Dog dog;
	dog.init("dd", 12);
	Cat cat;
	cat.init("cc", 13);
	PrintCla printcla;
	printcla.print(&cat);
    return 0;
}

文章来源:https://blog.csdn.net/fangfanglovezhou/article/details/135389192
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。