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

    摘要: 目标: 实现一个函数返回一个table或者指向它的游标 如 我有一个字符串str:=,a,b,c, 通过调用我定义的函数my_function(str),得到如下结果: no name 1 a 2 b 3 c 请问高手该怎么实现啊??? 我试过在函数里面定义个临时表,然后将str分割再insert这个临时表,最后返回一个指向他的游标,但好象行不通。 ......
    摘要: 1.系统windows2003+sp1 2.数据库sqlserver2000标准版+sp3 3.安装sql server ce2.0,提示安装成功,系统开始菜单中出现:microsoft sql server ce 2.0->configure connectivity support in iis和books online两项 4.在d盘新建test目录,然后将sscesa20.d......


结构体用了默认构造函数后赋值的问题

定义了一个结构体,想定义它的默认值,于使用在里头用上了默认构造函数:  
   
  void   main(){  
          typedef   struct   struct_test{  
          int   i;  
          char   c;  
          struct_test(){  
                  i   =   0;  
                                    c   =   a;  
                            }  
                    }TEST;  
   
  //却发现不能在声明的时候赋值  
          TEST   a   =   {1,b};  
  }  
     
  报错如下:   error   C2552:   a   :   non-aggregates   cannot   be   initialized   with   initializer   list  
   
  但是不用构造函数就没有问题.  
   
  有趣的是不用typedef别名的话,使用了构造函数也没有问题.  
   
  void   main(){  
          typedef   struct   test{  
          int   i;  
          char   c;  
          struct_test(){  
                  i   =   0;  
                                    c   =   a;  
                            }  
                    };  
          test   a   =   {1,b};  
  }  
   
  求教!

NO.1   作者: junguo

void   main(){  
          typedef   struct   struct_test{  
          int   i;  
          char   c;  
          struct_test(int   j,char   d){  
                  i   =   0;  
                                    c   =   a;  
                            }  
                    }TEST;  
   
  //却发现不能在声明的时候赋值  
          TEST   a(1,c);  
  }  
   
  不能声明是因为你没有对应的构造函数!

NO.2   作者: changpei

void   main(){  
          typedef   struct   test{  
          int   i;  
          char   c;  
          struct_test(){  
                  i   =   0;  
                                    c   =   a;  
                            }  
                            struct_test(int   ii,   char   cc){  
                  i   =   ii;  
                                    c   =   cc;  
                            }  
   
                    };  
          test   a   =   {1,b};  
  }  
  这样就可以了。  
 

NO.3   作者: oyljerry

增加一个构造函数

NO.4   作者: jiajun2001

好像好多人的构造函数写错了哦,他的结构体名可是test阿,怎么都写成struct_test了???  
  大家怎么不测试一下自己的程序在帮人解决阿,不觉得这样会误导别人吗?

NO.5   作者: mdj_boy

在MSDN上查一下:“C2552”就知道了......

NO.6   作者: copygirl

调试了一下,如果使用了默认构造函数,则必须为struct起个与构造函数相同的名字。  
  void   main(){  
          typedef   struct   struct_test{  
          int   i;  
          char   c;  
   
          struct_test(){  
  i   =   1;  
                                  c   =   a;  
                            }  
   
                    }TEST;  
  //下面使用默认构造函数  
    //       TEST   a   =   {1,b};  
  TEST   a;  
  cout   <<   "a.i:"   <<   a.i   <<   endl   <<   "a.c:"   <<   a.c   <<   endl;  
  }  
   
   
  如果不使用默认构造函数,自己赋值,则不必起个相同的名字,但会有一条warning。  
  void   main(){  
          typedef   struct   {  
          int   i;  
          char   c;  
   
          struct_test(){  
  i   =   1;  
                                  c   =   a;  
                            }  
   
                    }TEST;  
  //下面不使用默认构造函数  
                    TEST   a   =   {1,b};  
   //           TEST   a;  
  cout   <<   "a.i:"   <<   a.i   <<   endl   <<   "a.c:"   <<   a.c   <<   endl;  
  }


 ·j2sdk1.4中有javax.servlet.*吗    »显示摘要«
    摘要: 编译的时候提示“package javax.servlet does not exist” 我最少还要安装什么才能导入这个类? 菜鸟,别见笑。 ......
» 本期热门文章:

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