对象和指针

没什么可以多说的,看程序啦~~

None.gif #include  < iostream >
None.gif#include 
< cstdlib >
None.gif
using  std::cout;
None.gif
using  std::endl;
None.gif
None.gif
class  CObject;
None.giftypedef 
const  CObject  *  LPCO;
None.gif
None.gif
class  CObject
ExpandedBlockStart.gif
{
InBlock.gif
private:
InBlock.gif    
int length;
InBlock.gif    
int width;
InBlock.gif    
int lefttop_xpoint;
InBlock.gif    
int lefttop_ypoint;
InBlock.gif
InBlock.gif
public:
InBlock.gif    CObject ( 
int l, int w, int x, int y );
InBlock.gif    
operator LPCO ( ) const;
InBlock.gif    
void co_print ( LPCO pco ) const;
ExpandedBlockEnd.gif}
;
None.gif
None.gifCObject::CObject ( 
int  l,  int  w,  int  x,  int  y )
ExpandedBlockStart.gif
{
InBlock.gif    length 
= l ;
InBlock.gif    width  
= w ;
InBlock.gif
InBlock.gif    lefttop_xpoint 
= x ;
InBlock.gif    lefttop_ypoint 
= y ;
ExpandedBlockEnd.gif}

None.gif
None.gifCObject::
operator  LPCO ( )  const
ExpandedBlockStart.gif
{
InBlock.gif    
return (CObject *)(this) ;
ExpandedBlockEnd.gif}

None.gif
None.gif
void  CObject::co_print ( LPCO pco )  const
ExpandedBlockStart.gif
{
InBlock.gif    cout 
<< pco -> width          << endl
InBlock.gif         
<< pco -> length         << endl
InBlock.gif         
<< pco -> lefttop_xpoint << endl
InBlock.gif         
<< pco -> lefttop_ypoint << endl ;
ExpandedBlockEnd.gif}

None.gif
None.gif
int  main ()
ExpandedBlockStart.gif
{
InBlock.gif    CObject co (
3456);
InBlock.gif    co.co_print ( co ) ;
InBlock.gif
InBlock.gif    system(
"pause");
ExpandedBlockEnd.gif}

只能说,灵活性是C/C++一脉相承的特性,安全隐患也是同样的一脉相承。
相对于其灵活性而言,我觉得,使用从对象到指针的自动转换,应当是不得已而为之的下策

转载于:https://www.cnblogs.com/Gigabyte/archive/2005/06/30/184228.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值