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=0;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[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; }
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就好了;否则你就要复制一份并且自己管理那块内存了。