当前位置:首页
开发技术指南» 文章正文
    引言:

 ·怎样验证一个sql语句是否有效    »显示摘要«
    摘要: 怎样验证一个sql语句是否有效? 不是通过查询分析器 而是通过一段代码来检查? ......
    摘要: 在页面上编写好的sql语句,然后保存到数据库中,如何查询该语句是否正确, 就像查询分析器中的语法检查?而不是执行该sql语句? 比如:select * from aa 这句是正确的 但是写成了 select * form aa 通过语法检查,指出该句不正确? ......


很简单的一段程序,哪位给解释一下呢

#include<iostream.h>  
  class   Myclass  
  {  
  private:  
    int   val;  
  public:  
    Myclass(int   i=0)  
    {val=i;cout<<"val="<<val<<endl;}  
    Myclass(Myclass   &cp);  
    void   set(int   i);  
    int   show();  
    ~Myclass();  
  };  
  Myclass::Myclass(Myclass   &cp)  
  {  
  val=cp.val;  
  cout<<"Copy   val="<<val<<endl;  
  cout<<"&&&&&&&&&&&&&&&&&&&&"<<endl;  
  }  
   
  void   Myclass   ::set(int   i)  
  {  
  val=i;  
  }  
   
  int   Myclass   ::show()  
  {  
  return   val;  
  }  
   
  Myclass::~Myclass()  
  {  
  cout<<"Exit   for   val="<<val<<endl;  
  }  
   
  Myclass   MyFun(Myclass);  
  void   gFun();  
  void   main()//主函数main  
  {  
  gFun();  
  cout<<"exit   main"<<endl;  
  }  
   
  void   gFun()  
  {  
  Myclass   my(5),ret;  
  ret=MyFun(my);  
  }  
  Myclass   MyFun(Myclass   obj)  
  {  
  cout<<"In   MyFun()"<<endl;  
  cout<<"obj.val="<<obj.show()<<endl;  
  obj.set(10);  
  cout<<"obj.val="<<obj.show()<<endl;  
  cout<<"return   obj..."<<endl;  
  cout<<"*************"<<endl;  
  return   obj;  
  }    
   
  运行结果:  
  val=5  
  val=0  
  Copy   val=5  
  &&&&&&&&&&&&&&&&&&&&  
  In   MyFun()  
  obj.val=5  
  obj.val=10  
  return   obj...  
  *************  
  Copy   val=10  
  &&&&&&&&&&&&&&&&&&&&  
  Exit   for   val=10  
  Exit   for   val=10  
  Exit   for   val=10  
  Exit   for   val=5  
  exit   main  
   
  我的问题是为什么运行到ret=MyFun(my);的时候Myclass::Myclass(Myclass   &cp)会执行呢?  
  而且执行完了MyFun又执行一下,这是为什么呢?

NO.1   作者: husl

 
  前面说错了     是调用拷贝构造函数       你的程序写的有点乱    
  其实就是  
  按值传参数要调用一次   把参数拷贝一份   传     到函数中    
  函数返回时   调用一次   把返回值传到     函数外   ,你可以把你的函数返回类型改为void   int什么的  
  就不会有  
  执行完了MyFun又执行一下,这是为什么呢?  
     
 

NO.2   作者: godsaveI

如lorylxw()所说,在ret=MyFun(my)中,传递参数的时候调用一次拷贝构造函数,返回的时候又调用一次拷贝构造函数。但是为什么会调用四次析构函数呢?  
 

NO.3   作者: russilong

两次调用拷贝构造函数都是用实参初始形参,第一次是用my初始obj,第二次是返回obj时用其实参来初始。不知讲清楚了没有。


    摘要: 比如在c:里面有文件夹a,文件夹a里面又有文件a1,它的路径为 c:\a\a1 能不能把这个路径完整取出来? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE