定义和使用不在头文件中的私有方法
Define and use private methods not in header file
我有一个情况,我不允许修改头文件为我的类。我想添加一个辅助函数来使用我的一个函数。但我不太清楚实现它的正确方法。通常我尝试谷歌,但找不到任何帮助。
下面是我当前的代码:
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();
任何帮助这将是不可思议的!
你可以直接使用lambda:
template<typename T>
void Set<T>::doubleRotateRight(Elem *& node)
{
static auto const privmed = []() -> void
{
//out << "who" << endl;
};
// you fill in here
rotateRight(node->left);
rotateLeft(node);
//call private helper not defined in header
privmed();
}
我认为问题是你必须在使用它之前定义"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();
}
相关文章:
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 使用 fstream 库并在屏幕上打印的文件有问题?
- 为什么 MFC .rc 文件有时会在末尾手动插入 \0?
- C++:包含指令和头文件有什么区别?
- 包含 .h 文件和 c/cpp 文件有什么区别?
- 我想从安卓工作室访问 .so lib 及其 cpp 文件的方法
- C :数据文件有错误:预期的无限制ID
- boost::P rogram_options 一种判断值是从命令行还是 ini 文件的方法?
- C++ & C 中的".inc"文件有什么意义?您想在什么情况下使用它?
- 使用运算符读取文件和使用读取功能>>文件有什么区别?
- 使用Ofstream创建一个位图文件有一个奇怪的输出
- 我的类中有方法的指针数组,但我不能调用我的方法.代码如下
- g++ 命令中".map"文件有什么用?
- 一种使用 boost 和 c++ 列出目录和子目录中所有文件的方法
- 似乎没有任何读取文件的方法可以工作,所有方法都不返回任何东西-C++
- 如何以这种方式访问另一个文件的方法/函数
- CORBA客户端是否有访问服务器IOR文件的方法
- 将目录压缩为单个文件的方法有哪些
- 是否有方法将相对库路径添加到可执行文件以避免设置LD_library_path
- c++有效的缓冲文本和有条件地将部分写入文本文件的方法