C++回调接口声明
2015-11-07 15:28
183 查看
用Java写回调函数时,用interface可以很方便的声明和实现回调接口。
c++声明回调接口可以声明一个纯虚类。
什么是纯虚类?
答:纯虚类就是一个只有声明没有实现的类。
如
class aInterFace
{
virtual void fun() = 0;
}
注意:virtual void fun() = 0;是声明fun为纯虚函数。如果没有=0,则fun只是一个虚函数,也就是说
class aInterFace
{
virtual void fun() ;
}这个类就不能叫纯虚类。
那么
class aInterFace
{
virtual void fun() ;
}(不写实现时,错误声明方法)
和
class aInterFace
{
virtual void fun() = 0;
}
有什么区别呢?(目前小生只遇到了下面这个问题,所以也只能谈这么多。)
在一个.h文件中声明一个虚类而不是纯虚类,虚函数需要有实现,否则在link时会出现“unresolved external "xxx(函数名)"”的错误提示。
修改方法:
虚类如果不写实现,按下面的方法声明时,就不会有上述错误
class aInterFace
{
virtual void fun() {};
}(不写实现时,正确声明方法)
c++声明回调接口可以声明一个纯虚类。
什么是纯虚类?
答:纯虚类就是一个只有声明没有实现的类。
如
class aInterFace
{
virtual void fun() = 0;
}
注意:virtual void fun() = 0;是声明fun为纯虚函数。如果没有=0,则fun只是一个虚函数,也就是说
class aInterFace
{
virtual void fun() ;
}这个类就不能叫纯虚类。
那么
class aInterFace
{
virtual void fun() ;
}(不写实现时,错误声明方法)
和
class aInterFace
{
virtual void fun() = 0;
}
有什么区别呢?(目前小生只遇到了下面这个问题,所以也只能谈这么多。)
在一个.h文件中声明一个虚类而不是纯虚类,虚函数需要有实现,否则在link时会出现“unresolved external "xxx(函数名)"”的错误提示。
修改方法:
虚类如果不写实现,按下面的方法声明时,就不会有上述错误
class aInterFace
{
virtual void fun() {};
}(不写实现时,正确声明方法)
相关文章推荐
- AE
- 压缩软件——7-Zip
- 个人笔记
- MFC常用宏(1)
- 最近在看教程学习linux,然后做了一些笔记,这个,应该算原创吧
- Linux笔记第三部分
- linux笔记第四部分
- 最近似乎都没怎么自学,觉得很愧疚,慎独真的很重要
- android学习笔记(2.2)--7.20--(android JUint test)
- android学习笔记(2.1)--7.20--(5中布局方式+android单位)
- android学习笔记(1)--7.20
- iOS笔记(常用的一些知识点)
- 麻将DeBug总结
- 双击消息(OnNMDblclkList)处理函数中不能设断点的问题
- gcc如何设置程序的入口函数
- 文件读写笔记
- 自定义程序入口的相关问题
- 自定义程序入口的相关问题
- ADT For Eclipse下载地址
- 网狐棋牌数据库配置问题