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

    摘要: 一个基本的功能,判断用户输入的用户名字和密码是否正确, 问题是,如果找到记录,验证正确,请问如何取出该条记录的id,以标识该用户之用,比如存在session或传给其它网页。 就是不知道如何操纵sqldatasource返回的记录集。 ......
    摘要: 请帮忙,谢谢 运行到jsp_upload.upload();出错(用的是resin-3.0.8,确认过form 提交部分格式正确): java.lang.arrayindexoutofboundsexception: 32506 at com.jspsmart.upload.smartupload.getdataheader(smartupload.java:857) at com.jsp......


关于 const 疑问

我看到一些别人写的代码   ,经常看到   const方函数定义后面的情况   如下例:  
  virtual   StdString   GetKeyFieldName   ()   const   =   0;  
  const不能放在前面,只能放后面?  
  const   放前面和后面的效果是一样的吗?  
   
  如果是一样的话这只是一种写程序的风格!  
  这样风格有什么好处吗?  
 

NO.1   作者: qfeng_zhao

放在前面,是说明函数返回值为const类型  
  放在后面,使说明该成员函数不改变成员变量的值,可被该类的const对象调用  
   
  意义不同

NO.2   作者: qhfu

const不能放在前面,只能放后面?  
  const   放前面和后面的效果是一样的吗?  
   
  如果是一样的话这只是一种写程序的风格!  
  这样风格有什么好处吗?  
  =====================================  
  不一样!  
          后面一个是表示该函数内不改变类成员。   而且如果是const   对象只能调用   后面加   const的函数。   还有就是后面一种只能是类成员函数才有。  
   
 

NO.3   作者: hyperlink_0911

方法声明后面加const,表明此方法是只读的,即此方法不能修改对象属性值.  
  这也意味着:此方法不可以调用其它非只读方法.另外,对象常量只能调用只读方法!  
  如果在前面加const,就说明返回值是常量

NO.4   作者: AutumnSky

const不能放在前面,只能放后面?  
  const   放前面和后面的效果是一样的吗?  
  /////////////////////////////////////////  
  放在后面是申明成员函数为常量,函数体内对成员变量是只读的,  
  放在前面毫无意义  
  所以效果是不一样的

NO.5   作者: sswater

准确地回答一下:  
  class   A  
  {  
  virtual   StdString   GetKeyFieldName   ()   const   =   0;  
  virtual   StdString   Another()   =   0;   //   假设另外一个方法没有‘const’  
  }  
   
  那么,当有一个实例时:  
      A   *   pa   =   new   XXX(A的子类);  
  时,pa->GetKeyFieldName()   和   pa->Another()   都是可以调用的。  
   
  但是在另一种情况,当指针为   const   时  
      const   A   *   pa2   =   pa;  
  时,pa2->GetKeyFieldName()   是可以被调用的,而   pa2->Another()   是不可以被调用的。  
   
  声明成员方法时   const   放在前面表示返回类型为常量,放在后面表示这个方法内部不可以修改成员变量,也就是说,这个方法可以在类实例为常量的时候被调用。  
   
  我现在已经系统地回答了这个问题,希望楼上的兄弟们在不确定的时候不要乱说,不要误人子弟!

NO.6   作者: heskyII

我看到一些别人写的代码   ,经常看到   const方函数定义后面的情况   如下例:  
  virtual   StdString   GetKeyFieldName   ()   const   =   0;  
  const不能放在前面,只能放后面?  
  const   放前面和后面的效果是一样的吗?  
   
  virtual   StdString   GetKeyFieldName   ()   =   0;//申明GetKeyFieldName是StdString   类型的纯虚函数;  
  StdString   GetKeyFieldName   ()   const   ;//申明GetKeyFieldName   是常成员函数;  
  virtual   StdString   GetKeyFieldName   ()   const   =   0;//上述二者的结合体


 ·adodc添加、更新、删除时出错    »显示摘要«
    摘要: private sub modifybtn_click() dim cnn as string dim sql as string cnn = "provider=microsoft.jet.oledb.4.0;data source=" & app.path & "\maps\db1.mdb;persist security info=fal......
» 本期热门文章:

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