pclint测试c或c++实例

pclint测试c或c++实例

ID:47359519

大小:177.50 KB

页数:17页

时间:2019-08-04

pclint测试c或c++实例_第1页
pclint测试c或c++实例_第2页
pclint测试c或c++实例_第3页
pclint测试c或c++实例_第4页
pclint测试c或c++实例_第5页
资源描述:

《pclint测试c或c++实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PC-lint测试C/C++实例实例1:test.cpp1#include2classX3{4int*p;5public:6X()7{p=newint[20];}8voidinit()9{memset(p,20,'a');}10~X()11{deletep;}12};编译这个文件,VC6.0产生0errors0warnings,而lint程序产生了如下8条警告信息,有些还是很有用处的提示。PC-lint告警信息:test.cpp(12):error783:(Info--Linedoesnotendwithnew-line)

2、test.cpp(7):error1732:(Info--newinconstructorforclass'X'whichhasnoassignmentoperator)test.cpp(7):error1733:(Info--newinconstructorforclass'X'whichhasnocopyconstructor){memset(p,20,'a');}test.cpp(9):error669:(Warning--Possibledataoverrunforfunction'memset(void*,int,unsignedi

3、nt)',argument3(size=97)exceedsargument1(size=80)[Reference:test.cpp:lines7,9])test.cpp(7):error831:(Info--Referencecitedinpriormessage)test.cpp(9):error831:(Info--Referencecitedinpriormessage){deletep;}test.cpp(11):error424:(Warning--Inappropriatedeallocation(delete)for'new

4、[]'data)---Wrap-upforModule:test.cpptest.cpp(2):error753:(Info--localclass'X'(line2,filetest.cpp)notreferenced)error900:(Note--Successfulcompletion,8messagesproduced)根据错误提示修改后的程序如下:#includeclassX/*lint-e753*///只声明实现类X,没有写main()应用类x,故可以屏蔽。{int*p;public:X()//构造函数{p=

5、NULL;}X(constX&x)//拷贝构造函数{p=newint[20];memcpy(p,x.p,20*sizeof(int));}X&operator=(constX&x)//赋值操作符{if(this==&x)//检查自赋值{return*this;}int*temp=newint[20];memcpy(temp,x.p,20*sizeof(int));//复制指针指向内容delete[]p;//删除原有指针(将删除操作符放在后面,避免X=X特殊情况下,内容的丢失)p=temp;//建立新指向return*this;}voidini

6、t(){if(NULL==p)return;//判断指针是否为空memset(p,'a',20*sizeof(int));}~X(){delete[]p;}};//在};后面回车换行以消除告警test.cpp(12):error783:(Info--Linedoesnotendwithnew-line)注意:为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符(可参考effective_c++2e条款11)再次运行pclintPC-lintforC/C++(NT)Vers.9.00a,CopyrightGimpelSoftware198

7、5-2008---Module:test.cpp(C++)---GlobalWrap-uperror900:(Note--Successfulcompletion,0messagesproduced)实例2:实现输入的两个复数的四则运算。/****************************************Filename:Complex.hFunction:Asimplecomplexcalculatordemo    ****************************************/#include

8、eam>usingnamespacestd;classcomplex{public://publicinterfacecomplex(doubler,doublei

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。