注册 登录
编程论坛 C++教室

类含有指针数据成员的时候,将类的对象作函数参数复制传递时,出错,

未未来 发布于 2013-10-11 19:30, 547 次点击
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])<<" ";
    }


}

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

类含有指针数据成员的时候,复制类的对象只复制地址,在这里复制地址为什么会出错,
5 回复
#2
未未来2013-10-11 19:37
.。。国庆几天没动,竟然犯低级错误了。。。。。。
#3
IT男year2013-10-11 20:38
回复 2楼 未未来
说说你的错误!我很好奇呀!
#4
未未来2013-10-11 21:01
回复 3楼 IT男year
直接传递对象,是复制对象,建立了线性表,但是原对象并没有改变,
#5
IT男year2013-10-11 22:15
回复 4楼 未未来
对呀!敢问这位兄台在哪里高就......为了以后更好的交流,能不能加一下QQ?我的QQ:624672706
#6
lzj125302013-10-12 09:56
...
1