我是c ++的新手并试图将c ++程序翻译成python。我对以下代码的语法感到困惑:
String xpathPrefix = "//div[";
String xpathSuffix = "]/div[3]/a/span[2]";
for (int i =26; i < 32; i++) {
String fullXpath = xpathPrefix + String.valueOf(i)+ xpathSuffix ;
driver.find_element_by_xpath.click(fullXpath);
}
任何人都可以指出将void function(unsigned(*f)(unsigned st, unsigned hqid) ) const{
if( f(st,hiddenControlBitId) ){
// code here
}
}
作为参数传递是什么意思吗?
BTW,我确信它与传递一对unsigned(*f)(unsigned st, unsigned hqid)
作为参数不同,因为尝试使用一对调用函数会产生编译错误std::pair<int,int> f
。
答案 0 :(得分:3)
unsigned(*f)(unsigned st, unsigned hqid)
这里f
是一个指向函数的指针,该函数可以获得2个无符号类型的参数,并返回无符号整数。 st
和hqid
可以完全省略。
使用示例:
如果您有这样的功能,例如:
unsigned foo(unsigned a, unsigned b)
{
return a + b;
}
然后你可以这样调用function
(我认为它是一种方法,因为那里有const
):
obj.function(foo);
答案 1 :(得分:1)
function
是类的const
方法(const
无法应用于非类函数),它将单个参数f
作为输入。< / p>
f
是指向非类函数的指针,该函数将2 unsigned
个参数作为输入并返回unsigned
。
例如:
unsigned addThem(unsigned st, unsigned hqid)
{
return st + hqid;
}
someObj.function(&addThem);
答案 2 :(得分:1)
void function(unsigned(*f)(unsigned st, unsigned hqid) ) const{ if( f(st,hiddenControlBitId) ){ // code here } }
在此,function()
是某个类的成员函数,它接受单个参数,该参数是一个指向函数(名为f
)的指针,该函数接受两个unsigned
类型的参数,并返回unsigned
。
如果foo()
是定义为;
unsigned foo(unsigned x, unsigned y)
{
return x + y; // some arbitrary operation on the arguments
}
如果s
是具有function()
作为成员函数的类的实例,那么语句就像;
s.function(foo);
会调用函数foo()
。 const
规范中的function()
表示对象s
未在逻辑上更改。
答案 3 :(得分:0)
它表示返回另一个的两个(无符号)整数的函数。有tools来解释C这类臭名昭着的语法。