| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1141 人关注过本帖
标题:开辟内存空间的疑问
取消只看楼主 加入收藏
H
Rank: 1
等 级:新手上路
帖 子:33
专家分:5
注 册:2009-4-18
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:1 
开辟内存空间的疑问
程序1:#include <iostream.h>
#include <string.h>
class CSample
{
    char *p1, *p2;
  public:     
    void init(char *s1, char *s2);
    void print()
    {
     cout<<"p1 ="<<p1<<'\n'<<"p2 = "<<p2<<'\n';
     }
    void copy(CSample &one);
    void free();
 
};

void CSample::init(char *s1, char *s2)
{
   p1=new char[strlen(s1)+1];
   p2=new char[strlen(s2)+1];
   strcpy(p1,s1);
   strcpy(p2,s2);
}

void CSample::copy(CSample &one)
{
   if (this!=&one ) *this=one;   
}
void CSample::free()
{
   delete[] this->p1;
   delete[] this->p2;

}


void main()
{
   CSample a,b;
   a.init("My name is ","andrew");
   a.print();   
   b.copy(a);  
   b.print();
   a.free();
}






程序2:
#include <iostream.h>
#include <string.h>
class CStrOne   
{   protected:
    char *pstr;   
    public:     
    CStrOne( char str[ ])
    {   pstr=str;
    }        
    void show()
    { cout<<"strings="<<pstr<<endl;           
    }
};

class CStrTwo:public CStrOne   
{  
    char *newpstr;   
    public:     
      CStrTwo( char str1[ ],char str2[ ]):CStrOne(str1)
    {   newpstr=str2;
    }        
    void show()
    {   cout<<"strings1="<<pstr<<endl;
        cout<<"strings2="<<newpstr<<endl;           
    }

    void joint()
    { char temp[100];
      strcpy(temp, pstr);
      newpstr=strcat(temp,newpstr);
      cout<<newpstr<<endl;
     }


};


void main()
{   
   CStrTwo str("My Name is Lian",", 45 years old");
   str.show();
   str.joint();
 }

为什么程序1里来的p1和p2使用时要开内存空间,而程序2pstr赋值不用开内存空间?
搜索更多相关主题的帖子: 空间 疑问 内存 
2009-12-29 16:41
H
Rank: 1
等 级:新手上路
帖 子:33
专家分:5
注 册:2009-4-18
收藏
得分:0 
那为什么pstr不开辟内存空间呢?

我的意思是pstr是否一定要开辟内存空间才可以使用?

[url=http://shop59823293.]韩版 优雅 通勤 时尚女包[/url]
2009-12-29 17:01
快速回复:开辟内存空间的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016054 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved