24小时热门版块排行榜    

查看: 862  |  回复: 12
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhanglei22

银虫 (小有名气)

[交流] 【求助】帮我看下vc++ 6.0

#include "stdafx.h"
#include "iostream.h"
#include "stdio.h"
#include "string.h"

class commu
{
        char* pname;
        char* pschool;

    public :
    void print(void)
    {
                cout<<"姓名:"<                 cout<<"单位:"<
        }

        void init(char*,char*);

        void freespace(void);
        void setname(char *name)
        {
                if(pname)  delete[] pname;
                pname=new char[strlen(name)+1];
                strcpy(pname,name);
        }
        void setschool(char *unit)
        {
                if(pschool)  delete[] pschool;
                pschool=new char[strlen(unit)+1];
                strcpy(pschool,unit);
        }

        char * getname(void)
    {
                return pname;
        }  

        char * getschool(void)
        {
                return pschool;
        }       
};

void commu::init(char*name,char*unit)
{
        pname=new char[strlen(name)+1];
        strcpy(pname,name);
        pschool=new char[strlen(unit)+1];
        strcpy(pschool,unit);
}

void commu::freespace(void)
{
    if(pname) delete[] pname;
        if(pschool) delete[] pschool;
}


int main(int argc, char * argv[])
{
  commu c1,c2;
  c1.init("张三","清华大学";
  c2.init("李四","北京大学";
  c1.print();
  c2.print();
  c1.setschool("南开大学";
  cout<   c1.freespace();
  c2.freespace();

  getchar();
  return 0;
}



运行不了啊,有些郁闷!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ms98


小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+0,VIP+0):辛苦了,求助成功后我们会替楼主给予金币奖励! 10-6 16:43
汗!错误信息:无法打开'stdafx.h',就是我说的问题。
去掉  #include "stdafx.h"
就是说,删除 #include "stdafx.h"这句话,也就是你的代码中第一行

#include "stdafx.h"   ———这句删除
#include "iostream.h"
#include "stdio.h"
#include "string.h"
9楼2009-10-06 13:53:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

magic7004

金虫 (职业作家)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+2,VIP+0):鼓励交流,欢迎常来程序版 10-4 07:51
余泽成(金币+1,VIP+0):辛苦了,欢迎常来程序软件版! 10-4 10:16
晕~~,也不给个出错信息,我没有vc帮你调试啊。

ps:1.为什么要写init和freespace呢?建议init改成构造函数,freespace改成析构函数。
2. print没有检查pname和pschool是不是NULL,这样不安全哦。
3. getname和getschool也没检查pname和pschool是不是NULL,所以main里的函数调用commu::getname和getschool后,要检查返回值是不是NULL才行。
4.setname和setschool也没有检查输入参数是不是NULL。
5.delete[]应该是delete吧。
6.init函数没有先delete,就又分配了内存。如果多次调用init的话,会泄露内存。

[ Last edited by magic7004 on 2009-10-4 at 01:26 ]
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
2楼2009-10-04 01:23:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1,VIP+0):谢谢专家!常来交流。 10-4 10:28
这个问题不是编程语言方面的,而是作者不懂得如何使用那个集成环境。
这就如同让一个5岁小孩驾驶F22战斗机。
3楼2009-10-04 10:22:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanglei22

银虫 (小有名气)

没人帮忙 吗?  我自己顶一下!
4楼2009-10-05 14:31:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见