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
);
}
查看全文
相关阅读:
C#关于HttpClient的应用(二):融云IM集成
C#关于HttpClient的应用(一):获取IP所在的地理位置信息
PHP逐字符读取数据
PHP逐行读取数据
PHP函数的创建
PHP数组的创建
PHP基础学习代码案例
查看端口号占用情况
apache错误 Unable to open process" with PID 4!
NUnit TestFixtureSetup 和 TestFixtureTearDown
原文地址:https://www.cnblogs.com/cutepig/p/1412534.html
最新文章
TestNG(五)常用元素的操作
TestNG(四)查找元素
深入理解Java中的final关键字
事务特性及隔离级别
MySQL存储引擎
try catch finally return 轶事
nginx配置https及Android客户端访问自签名证书
jdk生成keystore、tomcat配置https
mysql 自带全文检索
Maven 打包可运行 jar
热门文章
java rmi 小记
Android WebView支持WebGL
Office转HTML
不借助第三个变量实现两个变量交换
WebApi身份验证
WebApi路由及版本控制
C#将Word,Excel与Html,PDF互转
C#按LastID进行分页——与lambda形成链式
C#关于图片的相关处理
C#关于HttpClient的应用(二):极光推送IM集成
Copyright © 2011-2022 走看看