CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

c++中设计类时想到一个问题,请教

楼主sizheng0320(四正)2005-07-02 18:38:11 在 C/C++ / C++ 语言 提问

一个私有成员,是个数组。  
  在写它的GET方法时,我直接返回数组名,也就是指针。  
   
  那对这个返回值操作的话,实际上不就是直接对实例的该私有变量的地址进行操作?那它本质上不就变成了公有的?是这样吗?  
   
  在GET里面新定义一个数组,将值复制进来,再返回这个新数组可以吗?会不会GET方法一结束这个新定义的数组就没有了呢? 问题点数:20、回复次数:9Top

1 楼JohnTitor(贱畜)回复于 2005-07-02 18:42:44 得分 4

class   some  
  {  
  public:  
      const   int*   Get(){return   ary;}  
  private:  
      int   ary[10];  
  };Top

2 楼sizheng0320(四正)回复于 2005-07-02 19:14:31 得分 0

OK,3xTop

3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-07-02 20:09:33 得分 3

数组返回地址,局部数组的话,就会返回后无效了Top

4 楼Wolf0403(废人:独活十年~心如刀割)回复于 2005-07-02 20:32:03 得分 3

参考   std::vector   等标准库容器的   container   -   iterator   设计模式吧。Top

5 楼junnyfeng(风歌)回复于 2005-07-02 20:43:57 得分 3

嘿,这正是一个陷阱。这时要程序员负责除去这种陷阱。  
  主要是用const   类型的指针或引用做返回值类型Top

6 楼jinzita177(高山流水)回复于 2005-07-02 20:47:22 得分 3

const   的用法很重要的。返回const变量,就是不允许改变。  
  局部数组不可以,不过一般c++使用传数组的引用,所以也可以解决你的需要。Top

7 楼LordSimon(lordsimon@x.cn)回复于 2005-07-02 22:11:35 得分 2

我觉得使用C++的话,应该尽可能的避免这类情况Top

8 楼yameng(雅梦)回复于 2005-07-02 22:51:02 得分 2

最好是避免这类情况,就算你使用const,用户还是可以强制转换成非const型的,  
  然后直接修改数组的值。Top

9 楼JohnTitor(贱畜)回复于 2005-07-03 01:28:02 得分 0

string的c_str()方法就是返回const   char*的Top

相关问题

  • 寻《C#类设计手册》电子版!
  • C++的类设计和算法问题
  • 《高质量c++/c程序设计》中有 byte *类型,是写错了吗?
  • c++中的类封装的抽象设计--方法
  • c++类库管理系统的详细设计
  • >>>> Visual C# .NET 2005 Beta2 在那里打开 类设计器?????
  • 除了<<C++ Primer>>之类的大部头,哪本C++教材比<<C++程序设计教程(钱能)>>讲得好?
  • 用c#复制一个Access数据库,操作设计到哪几个类?
  • 请问哪位兄弟用C#做过类似的表单设计器吗?
  • 探讨C++设计问题

关键词

  • c++
  • 数组
  • 返回
  • 方法
  • 使用
  • 话
  • const
  • get

得分解答快速导航

  • 帖主:sizheng0320
  • JohnTitor
  • oyljerry
  • Wolf0403
  • junnyfeng
  • jinzita177
  • LordSimon
  • yameng

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

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