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

简介:
#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


目录
相关文章
|
2月前
|
Rust 安全 编译器
Rust中的生命周期与借用检查器:内存安全的守护神
本文深入探讨了Rust编程语言中生命周期与借用检查器的概念及其工作原理。Rust通过这些机制,在编译时确保了内存安全,避免了数据竞争和悬挂指针等常见问题。我们将详细解释生命周期如何管理数据的存活期,以及借用检查器如何确保数据的独占或共享访问,从而在不牺牲性能的前提下,为开发者提供了强大的内存安全保障。
|
存储 缓存 Dart
[Flutter]足够入门的Dart语言系列之面向对象:类成员的可见性、常量和工厂构造函数详解
类和成员的可见性,这在基于库或包的开发中非常重要,Dart中提供了工厂构造函数,可以方便的实现单例、缓存实例对象、返回子类等,以及常量构造函数的使用......
242 0
[Flutter]足够入门的Dart语言系列之面向对象:类成员的可见性、常量和工厂构造函数详解
|
1月前
|
算法 程序员 C++
踩坑记录:C++ 中通用引用与函数重载的深入探索
踩坑记录:C++ 中通用引用与函数重载的深入探索
18 0
|
1月前
|
存储 算法 安全
【C++ 泛型编程 高级篇】 C++编译时函数调用技术深度解析
【C++ 泛型编程 高级篇】 C++编译时函数调用技术深度解析
36 1
|
1月前
|
存储 算法 安全
【C/C++ 模板编程 链接问题】 了解和解决模板编程中的链接错误以及正确的模板编写方式
【C/C++ 模板编程 链接问题】 了解和解决模板编程中的链接错误以及正确的模板编写方式
45 1
|
5月前
|
编译器 C++
《C++避坑神器·六》多继承下问题处理(同名变量,信号槽,多态内存释放)
《C++避坑神器·六》多继承下问题处理(同名变量,信号槽,多态内存释放)
27 0
|
6月前
|
存储 自然语言处理 算法
通过实际的例子,介绍编译器的工作过程
通过实际的例子,介绍编译器的工作过程
44 0
|
编译器
由编译器特别支持的包装
由编译器特别支持的包装
44 0
|
C#
艾伟:C#代码动态编译、动态执行、动态调试
  前几天看到一篇关于.net动态编译的文章 .NET中的动态编译 ,很受启发。在此基础上我做了一些封装,为使调用更加简单,并增加了对动态代码调试的支持,相同代码只编译一次的支持,代码改动自动重新编译,代码引用文件的自动加载和手工加载等功能。
1694 0