使用模板实现编译期间多态

简介:
#include <iostream>
using namespace std;

class DemoOne{
public:
	void f(bool someParm=true){ cout<<"DemoOne f functions\n";}
	void g(){ cout<<"DemoOne g functions\n";}
	// other functions...
};


class DemoTwo{
public:
	void f(){ cout<<"DemoTwo f functions\n";}
	void g(double a=1.12,double b=1.123){ cout<<"DemoTwo g functions\n";}
	// other functions...
};

template<typename T>
void h(T& t){
	t.f();
	t.g();
}

int _tmain(int argc, _TCHAR* argv[])
{
	DemoOne one;
	DemoTwo two;
	h(one);
	h(two);
	
	return 0;
}

image


目录
相关文章
TypeScript-类和泛型和ypeScript-接口合并现象
TypeScript-类和泛型和ypeScript-接口合并现象
63 0
|
6月前
|
缓存 监控 程序员
Python中的装饰器是一种特殊类型的声明,它允许程序员在不修改原有函数或类代码的基础上,通过在函数定义前添加额外的逻辑来增强或修改其行为。
【6月更文挑战第30天】Python装饰器是无侵入性地增强函数行为的工具,它们是接收函数并返回新函数的可调用对象。通过`@decorator`语法,可以在不修改原函数代码的情况下,添加如日志、性能监控等功能。装饰器促进代码复用、模块化,并保持源代码整洁。例如,`timer_decorator`能测量函数运行时间,展示其灵活性。
50 0
|
4月前
|
存储
hyengine 编译问题之创建对象异常如何解决
hyengine 编译问题之创建对象异常如何解决
|
7月前
|
开发框架 安全 编译器
【C/C++ 深入探讨构函数】C++ 编译器在什么情况下无法生成默认的析构函数?
【C/C++ 深入探讨构函数】C++ 编译器在什么情况下无法生成默认的析构函数?
153 1
|
7月前
|
前端开发 JavaScript
怎样使用接口引用数据
怎样使用接口引用数据
|
7月前
|
算法 程序员 C++
踩坑记录:C++ 中通用引用与函数重载的深入探索
踩坑记录:C++ 中通用引用与函数重载的深入探索
39 0
面试题:多态是编译时行为还是运行时行为?
面试题:多态是编译时行为还是运行时行为?
73 0
|
编译器 C++
《C++避坑神器·六》多继承下问题处理(同名变量,信号槽,多态内存释放)
《C++避坑神器·六》多继承下问题处理(同名变量,信号槽,多态内存释放)
56 0
|
安全 Java
创建对象的相关知识补充
创建对象的相关知识补充
64 0
|
编译器
由编译器特别支持的包装
由编译器特别支持的包装
66 0