标题:大家帮我看一下,没错没警告,运行出错!
只看楼主
icanfeelyou
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-7-23
结帖率:0
已结贴  问题点数:20 回复次数:9 
大家帮我看一下,没错没警告,运行出错!
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
    int age;
    char *name;
public:
    static int count;
    Student();
    Student(int m,char *n);
    ~Student();
    void Print()const;
};
int Student::count=0;
Student::Student()
{
    age=0;
    name="NULL";
}
Student::Student(int m,char *n)
{
    age=m;
    name=new char[strlen(n)+1];
    strcpy(name,n);
    count++;
}
Student::~Student()
{
    delete []name;
    count--;
}
void Student::Print()const
{
    if(name==NULL)
    {
        cout<<"name=Noname";
        cout<<"age="<<age<<endl;
    }
    else
        cout<<"name="<<name<<","<<"age="<<age<<endl;
}
int main()
{
    cout<<"count="<<Student::count<<endl;
    Student s1, *p=new Student(23,"zhanghong");
    s1.Print();
    p->Print();
    delete p;
    s1.Print();
    Student stu[4];
    cout<<"count="<<Student::count<<endl;
    return 0;
}
搜索更多相关主题的帖子: private include public count 
2013-11-19 20:19
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:5 
Student::Student()
 {
     age=0;
     name="NULL";
 }

这个name 指向就是一个栈内存了,
在pirng的时候就违规啦

改成name = NULL把

我行我乐
我的博客:
http://blog.yuccn. net
2013-11-19 20:38
icanfeelyou
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-7-23
得分:0 
回复 2楼 yuccn
改成NULL直接运行不出结果,我感觉我函数这些的定义也没错啊
2013-11-19 21:09
xiaodu000
Rank: 2
来 自:黑龙江七台河
等 级:论坛游民
帖 子:52
专家分:42
注 册:2013-10-15
得分:5 
楼主的程序太高深了,我等小弟实在看不懂,还没学指针什么的呢!!

写问题的同学不要手懒,有时候编译器说的东西胜过任何大牛!
2013-11-19 23:38
maanbang
Rank: 1
等 级:新手上路
帖 子:2
专家分:7
注 册:2013-11-20
得分:5 
回复 楼主 icanfeelyou
改为
Student::Student()
{
     age=0;
     name = new char[5];
     std::strcpy(name,"NULL");
}

这样就可以了。
2013-11-20 00:38
icanfeelyou
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-7-23
得分:0 
回复 5楼 maanbang
谢谢你啦,能留个QQ吗
2013-11-20 10:26
icanfeelyou
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-7-23
得分:0 
回复 4楼 xiaodu000
我原来自学的C语言,现在才学C++,C++学习的时间没几天
2013-11-20 10:28
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:5 
以下是引用icanfeelyou在2013-11-20 10:28:07的发言:

我原来自学的C语言,现在才学C++,C++学习的时间没几天


出了问题不要找客观原因...
你找一些客观原因搪塞一下我们...我无所谓啊,又不是我学习...但是对你提高没好处...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-20 10:36
icanfeelyou
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-7-23
得分:0 
回复 8楼 peach5460
就是因为学习得还不够,有时候不够细致,我没有晒唐你们的意思,别误会,我就是请大家帮帮忙,相互学习
2013-11-20 10:53
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
以下是引用icanfeelyou在2013-11-20 10:53:10的发言:

就是因为学习得还不够,有时候不够细致,我没有晒唐你们的意思,别误会,我就是请大家帮帮忙,相互学习

我也只是善意的提示你一下,别忙着给自己找借口,找理由
不要觉得自己没学几天,错了就应该的...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-20 11:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-423816-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.301108 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved