关闭

C++中数据共享的实现机制

发表于:2012-10-09 10:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ouchengguo    来源:51Testing软件测试网采编

  摘要:在程序设计中如何实现不同的函数模块之间的数据共享,是程序设计中的关键技术问题。

  本文以C++为例,详细阐述了面向对象程序设计中各种方式数据共享的实现机制。

  关键词:数据;函数模块;数据共享;C++

  C++是目前应用广泛的一种面向对象程序设计语言,它比较适合于编写大型复杂程序。它所提供的数据共享机制具有广泛的代表性,能够很好的解决程序设计中数据的共享。

  1、使用局部变量和全局变量共享

  数据使用局部变量能够在调用和被调用函数之问通过参数传递实现不同函数块之问的数据共享【局部变量具有局部作用域,能很好地实现函数之间的数据隐蔽。但在传递过程中需要很大的系统开销,故一般只用于传递少量的数据。

  全局变量具有文件作用域。全局变量所存储的数据在程序中任何地方都可以访问,能够在程序中的所有函数之间实现数据共享。例如:

include< iostream.h >
int i;//定义i为全局变量
void f()
{i=8;}//在函数f中给全局变量赋值
void P()
{cout<< i<<endl;}//在函数P中输出全局变量i
int main()
{
f();//调用函数f给全局变量赋值为“8”
P();//调用函数P输出全局变量值“8’’
return 0;}

  使用全局变量实现共享数据相当方便,但其副作用也相当大。因为全局变量无法对数据的访问权进行有效控制。也就是说,我们很难知道程序中数据在那些函数中共享,这样一旦共享的黄石理工学院学报2005年数据发生结构性调整,也就很难判断它到底影响到哪些函数,从而给程序维护带来相当大的困难。

  这种共享方式,直接影响到数据安全、程序代码重用和扩充。所以,在程序设计中,应可能少的使用这种共享方式。

  2、通过类的数据成员共享数据

  C++中类内部封装的数据成员提供了同一类的函数成员之间进行数据共享机制。这种共享方式一方面实现了类内部函数的全面共享,同时也提供了通过设置适当的访问控制属性,把共享只限制在类的范围之内,这样对类外来说,类的数据成员仍是隐藏的,达到了共享与隐藏两全,解决了全局变量和局部变量所无法克服的矛盾。例如:一个时钟类,该类中封装了私有数据成员有Hour,Minute,Second,在类的成员函数之间实现数据共享。在类的外面,对它们的访问只能通过类自身提供的外部接口进行,无法直接访问。

Class Clock//时钟类的声明
{
public://#b部接口,公有数据成员函数
void SetTime(int NewH =0,int NewM =0,int
News=0);
void ShowTime();
private://私有数据成员 .
int Hour,Minute,Second;//在类的成员函数之间共享
};

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号