您的位置:首页 > 编程语言 > C语言/C++

c++:warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

2016-04-24 16:33 661 查看
首先,它任然是有效的C++代码,应为你写的char* 是具有c风格的字符串,所以g++不识别

可以选择在编译的时候加上:g++ -Wno-write-strings text.cpp //忽略警告。。。

其实这样是并不是很安全

上代码
1 #include <iostream>
2 #include <stdio.h>
3 #include <string.h>
4 using namespace std;
5
6 class Student{
7   private:
8     int score;
9     char *name;//可变的变量
10   public:
11     Student(const char *name,int score);
12     Student(Student& stu);
13     ~Student();
14     void  show();
15 };
16
17 Student::Student(const char *name1,int score1)//这里改了const
18 {
19   cout<<"constructing ..."<<endl;
20
21   name = new char[strlen(name1)+1];
22   if(name != 0)
23   {
24     strcpy(name,name1);
25     score = score1;
26   }
27 }
28
29 Student::~Student()
30 {
31   cout<<"Destructing..."<<endl;
32   name[0] = '\0';
33   delete name;
34 }
35
36 Student::Student(Student& stu)
37 {
38   cout<<"copy constructing ..."<<endl;
39   name = new char[strlen(stu.name)+1];
40   if(name != 0)
41   {
42     strcpy(name,stu.name);
43
44     score=stu.score;
45   }
46 }
47
48 void Student::show()
49 {
50   cout<<name<<endl;
51   cout<<score<<endl;
52 }
53
54 int main()
55 {
56   Student stu1("huhao",101);//在这里传入的是const的变量
57   /*
58   Student stu2=stu1;
59   stu1.show();
60   stu2.show();*/
61 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: