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

请问一哈这个程序哪儿错了啊?怎么改呢?

Oscar_0049 发布于 2007-09-25 16:24, 490 次点击

#include <iostream.h>
class Tclass
{
public:
int x,y;
void print()
{cout<<x<<endl<<y<<endl;};
};

int add(Tclass *ptf)
{return (ptf->x+ptf->y);}
void main()
{
Tclass test,*pt;
pt->x=100; pt->y=200;
pt->print();
test.x=150; test.y=450;
test.print();
cout<<"x+y="<<add(&test)<<endl;
}

9 回复
#2
雨中飞燕2007-09-25 16:38
pt指向哪里???



by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
#3
coachard2007-09-25 16:48
pt=new Tclass;
#4
海子星竹2007-09-25 16:56

把pt 指向 test
pt = &test;

#5
yuyunliuhen2007-09-25 17:02

#include <iostream>
using namespace std;
class Tclass
{
public:
int x,y;
void print()
{
cout<<x<<endl<<y<<endl;};
};

int add(Tclass *ptf)
{
return (ptf->x+ptf->y);
}
int main()
{
Tclass test;
Tclass *pt=new Tclass;
pt->x=100;
pt->y=200;
pt->print();
delete pt;
test.x=150;
test.y=450;
test.print();
cout<<"x+y="<<add(&test)<<endl;


return 0;
}

#6
Oscar_00492007-09-26 09:40
哦!谢谢大家啦
#7
mingreign2007-09-26 18:20
回复:(yuyunliuhen)#include usin...
  我就感到奇怪,你的print函数后面多一个分号,为什么他还能正确执行.
#8
chen78062007-09-26 19:42
以下是引用mingreign在2007-9-26 18:20:32的发言:
我就感到奇怪,你的print函数后面多一个分号,为什么他还能正确执行.

函数的定义,声明,引用。你必须搞清楚。

#9
china25qd2007-09-26 20:06
哎!
指针和地址
C++最烦也是最经典的东西
#10
china25qd2007-09-26 20:13
以下是引用yuyunliuhen在2007-9-25 17:02:11的发言:

#include <iostream>
using namespace std;
class Tclass
{
public:
int x,y;
void print()
{
cout<<x<<endl<<y<<endl;};
};

int add(Tclass *ptf)
{
return (ptf->x+ptf->y);
}
int main()
{
Tclass test;
Tclass *pt=new Tclass;
pt->x=100;
pt->y=200;
pt->print();
delete pt;
test.x=150;
test.y=450;
test.print();
cout<<"x+y="<<add(&test)<<endl;


return 0;
}

补充一下主函数:
int main(int e)
{
Tclass test;
Tclass *pt=new Tclass;
pt->x=100;
pt->y=200;
pt->print();
delete pt;
test.x=150;
test.y=450;
test.print();
cout<<"x+y="<<add(&test)<<endl;
return e;
}
没有返回的话,很容易出问题的哦!
1