【发布时间】:2013-01-12 22:51:38
【问题描述】:
具体来说,我有一个包含多个字符串对象数据成员(NID、customerNumber、studentNumber、fName、lName)的类的对象列表。
我想重用以下代码来搜索与搜索键匹配的节点,无论要查找的数据成员是 NID 还是任何其他类的字符串数据成员。
nodePtr = firstPtr;
for(; nodePtr != NULL && nodePtr->str != str; nodePtr = nodePtr->nextPtr);
if(nodePtr != NULL)
//the nodePtr points to the node that matches the search key
else
//no node matched the search key
如果是 PHP 代码,我可以使用一个变量的值作为另一个变量的名称:
$node->${$var}
但是在 C++ 中是否有重用代码?
【问题讨论】:
-
预处理器宏?模板?
-
@JoachimPileborg 我如何使用模板?模板的参数是类型而不是变量名的占位符!
-
@csstd:模板参数可以是值而不是类型;特别是,它们可以是指向类成员的指针,这将是解决您的问题的一种方法 - 如果您想要的字段在编译时总是已知的。否则,指向成员的指针(或者更灵活的谓词函数对象)可以作为函数参数传递。
标签: c++ code-reuse reusability