不在头文件中定义和使用私有方法

时间:2016-11-06 12:23:32

标签: c++

我有一种情况,我不允许修改我的类的头文件。我想添加一个辅助函数来与我的一个函数一起使用..但是无法弄清楚实现它的正确方法。通常我试试谷歌但在那里找不到任何帮助。

这是我目前的代码:

    template<typename T>
void Set<T>::doubleRotateRight(Elem *& node) {
    // you fill in here
    rotateRight(node->left);
    rotateLeft(node);

    //call private helper not defined in header
    privmed();

}
void privmed(){
    //out << "who" << endl;
}

然而,当我运行这个时,我得到错误:

error: there are no arguments to ‘privmed’ that depend on a template parameter, so a declaration of ‘privmed’ must be available [-fpermissive]
     privmed();

任何帮助都会令人难以置信!

2 个答案:

答案 0 :(得分:1)

你可以使用lambda:

ConstVal

答案 1 :(得分:1)

我认为问题在于你必须在使用它之前定义“privmed()”函数,如下所示:

void privmed(){
    //out << "who" << endl;
}

template<typename T>
void Set<T>::doubleRotateRight(Elem *& node) {
    // you fill in here
    rotateRight(node->left);
    rotateLeft(node);

    //call private helper not defined in header
    privmed();
}