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
);
}
查看全文
相关阅读:
bzoj 1016 JSOI2008 最小生成树计数
bzoj 1070 SCOI2007 修车
bzoj 1042 HAOI2008 硬币购物
bzoj 1132 POI2008 Tro
bzoj 1227 SDOI2009 虔诚的墓主人
bzoj 1024 SCOI2009 生日快乐
1103 POI2007 大都市meg
bzoj 1009:[HNOI2008]GT考试
noip2006T1 能量项链
bzoj 1006: [HNOI2008]神奇的国度
原文地址:https://www.cnblogs.com/cutepig/p/1412534.html
最新文章
【BZOJ 1176 2683】Mokia
【BZOJ 1146】网络管理Network
高精度模板
猫王相亲
【BZOJ 1128】数列
Strange Sum
浅析C语言指针问题
bzoj 3110
[poi2010]Hamsters
[poi2007]mem
热门文章
[poi2007] biu
codeforces 484E
[POI2008]KLO && POC
道路翻新 (Revamping Trails, USACO 2009 Feb)
bzoj 3718
bzoj 3714
编程相关的认知科学
Sweetkang 的机器学习实验室 (1)
浅谈动态规划
利用一些码农Trick去搞一搞G和T的单词
Copyright © 2011-2022 走看看