CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

超级菜问题,在一个类中如何定义一个返回值为指针的函数

楼主poplau(和你聊聊软件开发)2004-12-02 11:54:02 在 VC/MFC / 基础类 提问

struct   s{  
  ....  
  }  
  class   classA:classA  
  {  
  public  
   
  }  
  ///////////////////////////////////////////////  
   
  s*   functionname{  
   
  }  
   
  /////////////////////////////  
  欧不知道怎么写啊。赫赫。。。没书网上也没查到 问题点数:30、回复次数:12Top

1 楼vcleaner(我没当大哥很久了.......)回复于 2004-12-02 11:55:37 得分 0

就是这么写的啊Top

2 楼nastar(阿门)回复于 2004-12-02 11:57:04 得分 0

s*   func()  
  {  
        s   *ss;  
        ……  
        return   ss;  
  }Top

3 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2004-12-02 11:58:39 得分 0

如楼上所说。Top

4 楼I_Love_CPP(Never stop!)回复于 2004-12-02 12:49:54 得分 0

来晚了。  
  我写个安全的代码;  
  把指针声明为成员  
  s*   m_pointer;//记得要在析构函数中delete  
  s*   func()  
  {    
        //对m_pointer进行处理  
         
        return   m_pointer;  
  }  
  Top

5 楼pknife(小李飞刀)回复于 2004-12-02 13:09:19 得分 0

跟返回整型没什么两样Top

6 楼poplau(和你聊聊软件开发)回复于 2004-12-02 13:14:15 得分 0

struct   s{  
  ....  
  }  
   
  class   classA:classA  
  {  
  public:  
        s*   func();  
  }  
  ///////////////////////////////////////////////  
  s*   classA::func()  
  {  
        s   *ss;  
        ……  
        return   ss;  
  }  
  ///////////////////////////////////////////////  
  放在类里是这么写的吗?我这样试了一下,好像不行。。。。继续求救阿Top

7 楼xqk(夏乾坤)回复于 2004-12-02 13:58:01 得分 0

你想问什么呀到底,这不就是返回这个S结构的指针嘛?   没问题呀!Top

8 楼weiming28cn(未名)回复于 2004-12-02 14:22:32 得分 10

class   classA:classA  
  这个能行吗?  
  而且,你在func()中不为ss分配内存空间的画,那么返回的指针就可能指向任意地址,也就得不到你要得值了!Top

9 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-12-02 14:40:50 得分 10

用new分配空间,然后再返回  
  s*   classA::func()  
  {  
        s   *ss   =   new   s;  
        ……  
        return   ss;  
  }  
   
  记得deleteTop

10 楼poplau(和你聊聊软件开发)回复于 2004-12-02 15:51:07 得分 0

把我的代码贴出来吧。  
   
  class   CClientTable      
  {  
  public:  
  struct   ClientNode{  
  CClientSocket *ClientSocket;  
  SOCKADDR_IN Clientaddr_in;  
  ClientNode *Forward;  
  ClientNode *Next;  
  };  
  ClientNode *ClientNodeHead;  
  ClientNode *ClientNodeLast;  
  int ClientCount;  
  public:  
  CClientTable();  
  virtual   ~CClientTable();  
  void   ClientNodeCreat();  
  UINT   ClientNodeAdd();  
  void   ClientNodeDel(CClientSocket   *ClientSocket);  
  void   ClientNodeFree();  
  ///////////问题就在下面,函数目的是找到该节点,并返回这个节点地址/////////////////  
  ClientNode   *   ClientNodeFind(CClientSocket   *ClientSocket);//这里报错了  
  };  
   
  ClientNode   *   CClientTable::ClientNodeFind(CClientSocket   *ClientSocket)//这里也报错了  
  {  
  ClientNode   *temp;  
  temp=ClientNodeHead;  
  if   (temp==NULL)   return   temp;  
   
  while   (temp->ClientSocket->m_hSocket   !=    
  ClientSocket->m_hSocket){  
  temp=temp->Next;  
  }  
  return   temp;  
  }  
  //////////////////////////////////////////////。。。。。。。。。。。。。。Top

11 楼poplau(和你聊聊软件开发)回复于 2004-12-03 11:53:22 得分 0

??人呢?Top

12 楼ioriogami(八极推手er——VF铁杆非伪)回复于 2004-12-03 12:09:57 得分 10

 
  办法1:在函数里new,调用者负责delete。  
  办法2:用传出参数而不用返回值。  
  3办法:在类中做一个ClientNode成员变量,专门用来返回其指针。Top

相关问题

  • 怎样定义函数指针?
  • 如何在函数的定义中引用函数指针???
  • 如何定义类成员函数的函数指针?
  • 如何定义 带有函数调用方式声明 的函数指针?
  • 如何定义 带有函数调用方式声明 的函数指针?
  • 不用typedef,怎么定义一个返回函数指针的函数?
  • 怎样定义一个类型的指针函数?? typedef boob ...???
  • C++如何定义指向函数的指针?
  • 如何定义指向成员函数的指针?
  • 如何定义函数指针类型? 急,在线给分

关键词

  • 函数
  • 指针
  • clientnode
  • classa
  • cclienttable
  • cclientsocket
  • 返回
  • clientsocket
  • ss
  • func

得分解答快速导航

  • 帖主:poplau
  • weiming28cn
  • oyljerry
  • ioriogami

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo