| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 537 人关注过本帖
标题:类含有指针数据成员的时候,将类的对象作函数参数复制传递时,出错,
只看楼主 加入收藏
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
结帖率:94.87%
收藏
 问题点数:0 回复次数:5 
类含有指针数据成员的时候,将类的对象作函数参数复制传递时,出错,
main
程序代码:
#include<iostream>
#include"liuyu.hpp"
using namespace std;
int main(){
    liuyu head;

    build(head);
    display(head);
    return 0;

}


当头文件是
程序代码:
#include<iostream>
class liuyu{
public:

char *elem;
int length;
};
void build(liuyu head){
   const  int L=26;
    head.elem=new char[100];
for(int i=0;i!=L;++i){
    head.elem[i]='a'+i;}
    head.length=L;

}
void display(liuyu head){

    for(int i=0;i!=head.length;++i){
        std::cout<<(head.elem[i])<<" ";
    }


}

会出现无限循环的错误,

当头文件为
程序代码:
#include<iostream>
class liuyu{
public:

char *elem;
int length;
};
void build(liuyu &head){
   const  int L=26;
    head.elem=new char[100];
for(int i=0;i!=L;++i){
    head.elem[i]='a'+i;}
    head.length=L;

}
void display(liuyu &head){

    for(int i=0;i!=head.length;++i){
        std::cout<<(head.elem[i])<<" ";
    }


}

函数的形参为引用时,程序运行没错,

类含有指针数据成员的时候,复制类的对象只复制地址,在这里复制地址为什么会出错,
搜索更多相关主题的帖子: display 
2013-10-11 19:30
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
.。。国庆几天没动,竟然犯低级错误了。。。。。。
2013-10-11 19:37
IT男year
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:106
注 册:2013-6-9
收藏
得分:0 
回复 2楼 未未来
说说你的错误!我很好奇呀!
2013-10-11 20:38
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
回复 3楼 IT男year
直接传递对象,是复制对象,建立了线性表,但是原对象并没有改变,
2013-10-11 21:01
IT男year
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:106
注 册:2013-6-9
收藏
得分:0 
回复 4楼 未未来
对呀!敢问这位兄台在哪里高就......为了以后更好的交流,能不能加一下QQ?我的QQ:624672706
2013-10-11 22:15
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
...

C++菜鸟
2013-10-12 09:56
快速回复:类含有指针数据成员的时候,将类的对象作函数参数复制传递时,出错,
数据加载中...
 
   



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

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