warning: deprecated conversion from string constant to 'char*
#include<iostream>
using namespace std;
class Student
{
private:
int age;
char*name;
public:
Student(int m, char *n)
{
age=m;name=n;
}
Student()
{
age=;name="unnamed";
}
~ Student(){}
void SetMember ( int m,char *n )
{
age=m;name=n;
}
int Getage(){return age;}
char *Getname(){return name;}
};
int main()
{
Student stu[]={Student(,"wang"),Student(),Student()} ; stu[].SetMember(,"zhang"); cout<<stu[].Getage()<<","<<stu[].Getname()<<endl;
cout<<stu[].Getage()<<","<<stu[].Getname()<<endl;
cout<<stu[].Getage()<<","<<stu[].Getname()<<endl;
return ;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include<iostream> using namespace std;
class Student {
private :
int age;
const char *name;
public :
Student( int m, const char *n) {
age=m;
name=n;
}
Student() {
age=0;
name= "unnamed" ;
}
~ Student() {}
void SetMember ( int m, const char *n ) {
age=m;
name=n;
}
int Getage() {
return age;
}
const char *Getname() {
return name;
}
}; int main() {
Student stu[3]= {Student(13, "wang" ),Student(),Student()} ;
stu[2].SetMember(12, "zhang" );
cout<<stu[0].Getage()<< "," <<stu[0].Getname()<<endl;
cout<<stu[1].Getage()<< "," <<stu[1].Getname()<<endl;
cout<<stu[2].Getage()<< "," <<stu[2].Getname()<<endl;
return 0;
} |
看你的实现,传给Student类的字符串都是不可变的,都加上const就好了;否则你就要复制一份并且自己管理那块内存了。