zoukankan
html css js c++ java
把接口和实现分开的方法
假定接口类为A,而将实现放在Impl类中,由于非指针类型成员变量必须和该成员类声明放在一起,而指针类型可以不这样做,因此
必须将Impl成员指针作为A的成员变量
,代码如下
Impl.h 实现类的头/实现文件,可以看到里面实现了方法operator()
class
Impl
{
public
:
void
operator
()(
int
nData)
{
}
}
;
A.h 接口类头文件,
不须要包含实现类的头文件
class
Impl;
class
A
{
public
:
A();
~
A();
void
operator
()(
int
nData);
private
:
Impl
*
impl;
}
;
class
Impl;
class
A
{
public
:
A();
~
A();
void
operator
()(
int
nData);
private
:
Impl
*
impl;
};
A.cpp 接口类的实现,需要包含实现类的头文件
#include
"
A.h
"
#include
"
Impl.h
"
A::A()
{
impl
=
new
Impl;
}
A::
~
A()
{
delete impl;
}
void
A::
operator
()(
int
nData)
{
(
*
impl)(nData);
}
Main.cpp 主函数,
只需要包含接口类头文件即可,完全不需要知道实现类的任何东西
#include
"
A.h
"
void
main()
{
A a;
a(
0
);
}
查看全文
相关阅读:
MySQL数据库(2)
mysql数据库(1)
python是动态语言
元类
Django 全文检索
Django 分页的实现
FastDFS分布式存储服务器的使用
FastDFS分布式存储服务器安装
Django 获取用户历史浏览记录(基于Redis缓存)
LoginRequiredMixin类的使用
原文地址:https://www.cnblogs.com/cutepig/p/1412534.html
最新文章
【Eclipse DDMS】 Can't bind to local 8600 for debugger
Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
event.keyCode列表
Java常见内存溢出异常分析(OutOfMemoryError)
JVM运行时内存结构
linux考试基础知识测验
精选30道Java笔试题解答
Android 百度地图API(01)_开发环境 HelloBaiduMap
JPA 系列教程20-JPA2.0-@CollectionTable
JPA 系列教程19-jpa-uuid主键生成策略
热门文章
JPA 系列教程18-自动把firstName+lastName合并为name字段
JPA 系列教程17-继承-独立表-TABLE_PER_CLASS
JPA 系列教程16-继承-联合子类-JOINED
JPA 系列教程15-继承-一个表-SINGLE_TABLE
JPA 系列教程14-自定义类型-@Embedded+@Embeddable
JPA 系列教程13-复合主键-@EmbeddedId+@Embeddable
JPA 系列教程12-复合主键-2个@Id+@IdClass
JPA 系列教程11-复合主键-2个@Id
MySQL数据库(4)
MySQL数据库(3)
Copyright © 2011-2022 走看看