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

这个程序的错误怎么修改呢?大家帮忙看看,这个错误没见过

yangxiaoniu 发布于 2014-11-06 19:02, 495 次点击
#include<iostream.h>
#include<string.h>
class student
{
private:
    int age;
    char sex;
    char *name;
public:
    student(int a,char s,char *p_name);
    ~student
    {
        delete name;
    }
    void show();
    {
        cout<<name<<endl;
    }
};

student::student(int a,char s,char *p_name)
{
    age=a;
    sex=s;
    int length=sizeof(p_name);
    name=new char[length+1];
    strcpy(name,p_name)
}
void main()
{
    char *pp="abcd";
    int a=2;
    char s='m';
    student st(a,s,pp);
    st.show();
}
3 回复
#2
HZHXH2014-11-06 22:31
改了一些,看看吧



#include<iostream>
using namespace std;
#include<string.h>
class student
{
public:
    student(int a,char s,char *p_name);
    ~student()
    {
        delete name;
    }
    void show()
    {
        cout<<name<<endl;
    }
private:
    int age;
    char sex;
    char *name;
};

student::student(int a,char s,char *p_name)
{
    age=a;
    sex=s;
    int length=sizeof(p_name);
    name=new char[length+1];
    strcpy(name,p_name);
}
void main()
{
    char *pp="abcd";
    int a=2;
    char s='m';
    student st(a,s,pp);
    st.show();
}
#3
yangxiaoniu2014-11-12 20:58
已经过了,谢谢哦
#4
zcdjt2014-11-12 21:10
#include<iostream>
#include<string.h>
using namespace std;
class student
{
private:
    int age;
    char sex;
    char *name;
public:
    student(int a,char s,char *p_name);
    ~student()
    {
        delete name;
    }
    void show()
    {
        cout<<age<<" "<<sex<<" "<<name<<endl;
    }
};

student::student(int a,char s,char *p_name)
{
    age=a;
    sex=s;
    int length=sizeof(p_name);
    name=new char[length+1];
    strcpy(name,p_name);
}
int main()
{
    char *pp="abcd";
    int a=2;
    char s='m';
    student st(a,s,pp);
    st.show();
    system("pause");
    return 0;
}
又完善了一点。
1