在C++;? 我正在编写一个C++类,它需要引用由音节计数排序的英语或法语单词。格式化的字典文件根据其语言命名,读入后,类中的英语和法语函数共享相同的逻辑 //Files needed for French const char sSingleSyllablePath[] = "FR-SGL.txt"; const char sDoubleSyllablePath[] = "FR-DBL.txt"; const char sTripleSyllablePath[] = "FR-TRI.txt"; //...
阵列需要具有相同的名称,但引用不同的文件:在C++;? 我正在编写一个C++类,它需要引用由音节计数排序的英语或法语单词。格式化的字典文件根据其语言命名,读入后,类中的英语和法语函数共享相同的逻辑 //Files needed for French const char sSingleSyllablePath[] = "FR-SGL.txt"; const char sDoubleSyllablePath[] = "FR-DBL.txt"; const char sTripleSyllablePath[] = "FR-TRI.txt"; //...,c++,function,parameters,parameter-passing,C++,Function,Parameters,Parameter Passing,阵列需要具有相同的名称,但引用不同的文件: //Files needed for English const char sSingleSyllablePath[] = "EN-SGL.txt"; const char sDoubleSyllablePath[] = "EN-DBL.txt"; const char sTripleSyllablePath[] = "EN-TRI.txt"; //... 将包含所有文件的目录传递给构造函数,然后在初始化函数中引用文件名字符串 使用正确的文件名分配调
//Files needed for English
const char sSingleSyllablePath[] = "EN-SGL.txt";
const char sDoubleSyllablePath[] = "EN-DBL.txt";
const char sTripleSyllablePath[] = "EN-TRI.txt";
//...
将包含所有文件的目录传递给构造函数,然后在初始化函数中引用文件名字符串
使用正确的文件名分配调用此文件的最佳方式是什么?拥有两个代码相同但名称不同的独立类很容易,但似乎效率不高。因为有许多必需的文件,所以在构造函数中有大量的参数列表似乎也是不对的。您可以使用std::string:
const std::string sSingleSyllablePath = "-SGL.txt";
const std::string sDoubleSyllablePath = "-DBL.txt";
const std::string sTripleSyllablePath = "-TRI.txt";
然后,您必须定义如下函数:
std::string getLocalized(const std::string &loc, const std::string &filename)
{
return loc + filename;
}
这是一个单独的函数,只是因为-如果您需要在创建本地化文件名之前做一些事情,该怎么办。您可以将常量指针传递给常量数据:
void My_Function(char const * const p_text);
与使用std::string
不同,这不会创建新变量
BTW,您可能需要考虑将字符串声明为<代码>静态< /代码>。我发现
static
关键字允许编译器发出直接访问字符串的代码(而不是复制它们)。您仍然可以传递指向静态字符串的指针。构建一个链接到语言相关字符串表的区域设置对象。您不能在给定语言和可插入数字的单个函数中“构造”文件名吗?