哪位高手帮我解释一下下面的问题(注释在程序后面了),谢谢。

include<iostream>//在vc6上用release模式编译(20章);usingnamespacestd;floatcomputer::total_pric... include <iostream> //在vc6上用release模式编译(20章);
using namespace std;
float computer::total_price=0;
class computer
{
private:
char *name;
float price;
static float total_price;
public:
computer(const char*chr,const float p)
{
name=new char[strlen(chr)+1];
strcpy(name,chr);
price=p;
total_price+=p;
}
~computer()
{
delete [] name;
total_price-=price; //这句干什么用的,什么意思?
}
static void print_total()
{
cout<<"总价="<<total_price<<endl;
}
static void print(computer& com); //这句干什么用的,什么意思?
};
void computer::print(computer&com)
{
cout<<"名字="<<com.name<<endl;
cout<<"价格="<<com.price<<endl;
}

int main()
{
computer comp1("IBM",7000);
computer::print(com1);
computer::print_total();
computer comp2("ASUA",4999);
computer::print(com2);
computer::print_total();
comp2.computer(); //析构函数不是系统自带的吗,无需人工调用?
computer::print_total();
return 0;
}
名称=IBM
价格=7000
总价:7000
名称=ASUA
价格=4999
总价:11999 这个输出不理解?
总价:7000 这个的输出不理解?
展开
 我来答
unhappypeople
2010-09-02 · TA获得超过266个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:321万
展开全部
你这个程序编译都没通过就贴出来啊,有n多问题呢
1.float computer::total_price=0;写在了computer声明之前,编译器不认识的
2. computer comp1("IBM",7000);
computer::print(com1);com1和comp1不同
3. comp2.computer(); //析构函数不是系统自带的吗,无需人工调用?
这句话是错误的

解答你的问题:
static void print(computer& com); //这句干什么用的,什么意思?
是一个静态函数,传入一个computer参数,然后打印信息

你把正确的代码发上来吧,我会回答你的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式