函数定义中的成对变量

时间:2017-10-21 17:57:02

标签: c++ syntax

我是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

4 个答案:

答案 0 :(得分:3)

unsigned(*f)(unsigned st, unsigned hqid)

这里f是一个指向函数的指针,该函数可以获得2个无符号类型的参数,并返回无符号整数。 sthqid可以完全省略。

使用示例:

如果您有这样的功能,例如:

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这类臭名昭着的语法。