我有包装类,我已将其对象传递给函数。
class wrapper
{
/// some functionality
}
作为对
类的引用传递更好fun(wrapper & ob)
或由包装器继承的新接口,如:
class Interface
{
}
....
class wrapper:public Interface
...
fun(Interface& ob)
答案 0 :(得分:3)
如果您希望函数只接受wrapper
类的实例,请使用
fun(wrapper& ob)
或
fun(const wrapper& ob)
如果您不打算修改它。
如果你希望你的函数接受任何实现Interface
类的东西(只有在继承自wrapper
的{{1}}之后才有更多的类),那么使用:
Interface
或
fun(Interface& ob)
选择取决于用例。
答案 1 :(得分:2)
如果符合以下条件,Interface
方法会更好:
wrapper
替换为其他一些实现Interface
wrapper
用户的fun
实施内容 - 即您在{{{{}}之前不需要#include wrapper.h
1}}声明通常 更好地与fun
一起从界面抽象实现,但也不要忘记“not pay for what you don't use”原则,即如果你知道你赢了&#39 ; t Interface
Interface
以及wrapper
wrapper.h
的任何实施都需要Interface
#in}对于您的项目来说不是问题,而是与<script type="text/javascript">
var a1;
function fn_disable() {
a1.disable();
}
$(function() {
a1 = $('#tablename').autocomplete({
serviceUrl:'/lookup',
minChars:3,
delimiter: /(,|;)\s*/,
maxHeight:400,
width:520,
zIndex: 9999,
deferRequestBy: 50,
noCache: false
});
});
</script>
一起over-design