问题描述
- 请帮忙看看错误吧。。。
-
#include
#include
using namespace std;
class Person
{
private:
char *name;
public:
Person(char *n1):name(n1){strcpy(name,n1);}
void PrintName() {cout<<"The name is:";}
};
class Student:public Person
{
private:
long int Number;
public:
Student(char *n2,long int n3):Person(n2) {Number=n3;}
void PrintInfo()
{
cout<<"The number is:";
}
};
int main()
{
Person a("张三");
cout<<a.PrintName<<endl;
Student b("张三",142180217);
cout<<b.PrintInfo<<endl;
return 0;
}
解决方案
#include<iostream>
#include<string>
using namespace std;
class Person
{
private:
char *name;
public:
Person(char *n1):name(n1){strcpy(name,n1);}
void PrintName() {cout<<"The name is:" << name; }
};
class Student:public Person
{
private:
long int Number;
public:
Student(char *n2,long int n3):Person(n2) {Number=n3;}
void PrintInfo()
{
cout<<"The number is:" << Number;
}
};
int main()
{
char ch[] = "张三";
Person a(ch);
a.PrintName();
cout << endl;
Student b(ch,142180217);
b.PrintInfo();
cout << endl;
return 0;
}
解决方案二:
name没有空间,怎么放数据?
解决方案三:
name 没有分配内存空间,至少要 malloc 或 new 一下吧。
解决方案四:
http://codepad.org/tDXOotfn
The name is:张三
The number is:142180217
解决方案五:
char *name;
Person(char *n1):name(n1){strcpy(name,n1);}
很明显没有初始化指针,是不能直接使用的;
Person(char *n1):name(n1)
{
name = (char *)malloc(sizeof(char))
strcpy(name,n1);
}
解决方案六:
好像name没有分配空间。
解决方案七:
name 没有分配内存空间,既然用了std,就把 char* 换成 std::string
时间: 2024-11-29 00:15:01