• warning: deprecated conversion from string constant to 'char*


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

  • 相关阅读:
    第二季-专题11-世界一下变大了-MMU
    第二季-专题10-C语言环境初始化
    第二季-专题9--代码搬移不可少
    第二季-专题8-不用内存怎么行
    第二季-专题6-点亮指路灯
    第二季-专题7-ARM跑快了---时钟初始化
    第二季-专题5-核心初始化
    第二季-专题4-我是bootloader设计师
    消除苹果系统对边框的优化
    css3
  • 原文地址:https://www.cnblogs.com/timssd/p/6694134.html
Copyright © 2020-2023  润新知