设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1556|回复: 5
打印 上一主题 下一主题

有关类指针的问题!!

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-6 01:15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面的程序我知道不规范,我只是想形象说明一下我的问题.请大家重点回答我的问题,谢!

#include<iostream.h>
#include<stdlib.h>
#include<string.h>
class stu{
public :
int name ;
stu *next;
stu()
{
name=100;
next=NULL;
}
};

void main()
{
stu *top,t;

top=t;

top->name=8;//在指针里我输入一个数

cout<<top-name<<endl;//我以为会输出8!

}

请问我想在一个类的指针下输入一个数,应该怎样做>??
2#
发表于 2009-11-6 01:15:07 | 只看该作者
lz,是输出8啊~~~~~
先改正一下你程序里的错误~~~
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
class stu
{
public :
int name ;
stu *next;
stu()
{
name=100;
next=NULL;
}
};

void main()
{
stu *top,t;

top=&t; //top为指针,而t为对象,应该要使指针top指向对象t;

top->name=8;//在指针里我输入一个数

cout<<top->name<<endl;//我以为会输出8!

}
截不了图给你看
但在我的机器上运行是输出8的~~~
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-6 01:15:08 | 只看该作者
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
class stu{
public :
int name ;
stu *next;
stu()
{
name=100;
next=NULL;
}
};
stu* ask(stu *top)
{
stu t;
top=&t;
if(!top)
{cout<<"err"<<endl;
exit(0);
}
return top;
}
stu* input(stu *top)
{
stu *old,*star,t;
cout<<star<<endl;
old=ask(old);
star=ask(star);

cout<<star<<endl;
old=top;
int i=0;
while(i<3)
{
cout<<"name:";

cin>>star->name;
old->next =star;
old=star;
i++;

star=ask(star);
}
return top;


}
void print(stu *top)
{
int i=0;
stu *star;
star=top;
for(i=0;i<3;i++)
{
cout<<"name:"<<star->name<<endl;
star=star->next;
}
}
void main()
{
stu *top,t;
top=&t;
input(top);
print(top);
}

可能是我的思路错了.我想用这种方法把输入的数输出!麻烦你帮帮忙!谢!
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-6 01:15:09 | 只看该作者
我想问一下你这段代码有什么用 ?

stu* ask(stu *top)
{
stu t;
top=&t;
if(!top)
{cout<<"err"<<endl;
exit(0);
}
return top;
}
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-6 01:15:11 | 只看该作者
对楼主的代码做了以下修改:
我实在看不懂stu* ask(stu *top)这个函数对整个程序有什么作用
所以只好把它删了

#include<iostream.h>
#include<stdlib.h>
#include<string.h>
class stu
{
public :
int name ;
stu *next;
stu()
{
name=100;
next=NULL;
}
};
stu* input(stu* &top)
{
cout<<"please input name:"<<endl;
stu *p2,*p1;
p2=new stu;
top=0;


for(int i=0;i<3;i++)
{
cin>>p2->name;
if(top==NULL) top=p2;
else p1->next=p2;
p1=p2;
p2=new stu;

}

p1->next=NULL;
delete p2;
return top;
}
void print(stu *top)
{
int i=0;
stu *star;
star=top;
for(i=0;i<3;i++)
{
cout<<"name:"<<star->name<<endl;
star=star->next;
}
}

void main()
{
stu *top;
input(top);
print(top);
}
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-6 01:15:12 | 只看该作者
谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 15:10 , Processed in 0.104783 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表