私有方法实现编译错误
Private method implementation compile error
我有T类
class T
{
public:
.
.
private:
void foo();
}
void T::foo()
{
.. foo body
}
当我尝试编译时,我得到错误:void T::foo()
是专用
我应该如何实现私有方法?
私有方法只能在类中使用。
私人、受保护和公共之间的区别?https://isocpp.org/wiki/faq/basics-of-inheritance#access-规则
如果你想在外面使用它,那么你必须公开它。以下是一个关于私人和公共成员的简单示例
#include <iostream>
class T
{
void bar()
{
cout << "Private! Can only be accessed within the class";
}
public:
void foo()
{
std::cout << "hello world!";
}
};
int main() {
// your code goes here
T testT;
//testT.bar(); <--uncomment this and you will get the error: 'void T::bar()' is private
testT.foo();
return 0;
}
你可能还想了解一下朋友的概念。如果一个函数被声明为T类的友元,它就可以访问私有的foo()。
更多详细信息请点击此处:http://www.cplusplus.com/doc/tutorial/inheritance/
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- std::is_base_of表示ctor编译错误
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- Qt Cmake 错误编译"GuiSupportQt not found"
- Opengl 精度转换错误编译错误 E0415
- 库将ARM架构错误编译为架构X64
- RT 音频 Mac 错误 g++ 编译错误
- 错误编译Boost.log
- 错误编译QT创建者 / QT窗口小部件示例
- 错误编译MIPS32
- Visual Studio 2013 中的错误(编译和运行代码)
- 链接错误编译qt项目在visual 2010
- 无法用模板错误编译nsgmls
- 奇怪的错误.编译失败
- 如果有人调用c++中的方法,则强制错误(编译时)
- 来自autoconf测试的错误编译命令
- 时间限制超出错误C++编译
- SFML 2.3 和 CodeBlocks 错误编译