背景
我正在开发一个语音转换器程序,它将英语文本转换为等效的区域语言文本。区域语言的字符将多于英文字母,并且区域语言字体使用字体中的几乎所有位置 (1-255)。
我的程序支持不同的字体,我创建了一个字体类,它有方法可以访问字符。这个类将有 255 个方法,每个方法代表每个字符。所有这些都被标记为虚拟,以便新字体可以覆盖必要的字符方法。
这个字体类中的方法很简单。所有方法都是单行的。例子是
string StandardFont::consonant1(){
return "a";
}
string StandardFont::consonant2(){
return "b";
}
..
问题
- 单个类中的 255 个虚函数会产生任何性能问题吗?我知道vtable的东西,但我不确定它在这种情况下有多大的影响。
- 任何人都可以为这门课推荐一个替代设计吗?主要设计目标是允许派生类覆盖必要的方法。我曾考虑将字符添加到地图或矢量等容器中,并提供获取字符的方法。但是由于我将有 255 个项目并且经常使用这个类,所以我认为每次我必须循环容器来获取角色,这又是一个问题。
任何想法?