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
);
}
查看全文
相关阅读:
(1)MySQL初识
ESP8266(WIFI模组)_Lua开发:环境搭建
那些年写过的毕设论文
单片机的心跳SysTick
尝试
菜单管理设计说明
mybatis的mapper.xml中sql的用法
powerdesigner
Cookie
java自定义注解
原文地址:https://www.cnblogs.com/cutepig/p/1412534.html
最新文章
nginx 面试知识点
es
linux 批量分发公钥
nfs配置
python 操作mysql
mysql 使用binary logs 恢复数据
redis 集群搭建、扩容和收缩。(师从张亚老师)
redis 基础、持久化、主从、哨兵
Linux基础-2
Linux基础-3
热门文章
Redis 入门-redis.conf详解
Redis-
Git
Docker Swarm
Docker-compose
Docker网络
Docker开始--Dockerfile
Docker-01
(3)表中数据的基本操作
(2)数据库和表的基本操作
Copyright © 2011-2022 走看看