标题:大佬们 请帮忙分析下这个程序那个环节出了问题 错误提示我注释在下面了
只看楼主
风流泰
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2018-9-29
结帖率:87.88%
已结贴  问题点数:20 回复次数:2 
大佬们 请帮忙分析下这个程序那个环节出了问题 错误提示我注释在下面了
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
#include "Myvector.cpp"

class Teacher
{
public:


    Teacher(char* name, int age)
    {
        this->age = age;
        strcpy(this->name, name);
    }


    void printT()
    {
        cout << name << "------" << age << endl;
    }
private:
    int age;
    char *name;
};

int main(void)
{
    Teacher t1("t1", 31), t2(32, "t2"), t3(33, "t3");
    system("pause");
    return 0;
}

// error C2664: “Teacher::Teacher(Teacher &&)”: 无法将参数 1 从“const char [3]”转换为“char *”
// note: 从字符串文本转换将丢失 const 限定符(请参阅 /Zc:strictStrings)
搜索更多相关主题的帖子: 分析 name Teacher char age 
2019-05-19 22:47
dspure
Rank: 2
等 级:论坛游民
帖 子:1
专家分:20
注 册:2019-5-19
得分:20 
回复 楼主 风流泰
今天我也遇到相同的问题
构造函数处 你输入的是一个字符串,编译器默认为const char*类型,而Teacher(char* name, int age)中声明的为 char *,类型转换出错,将char*加上const修饰符就解决啦
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
#include "Myvector.cpp"

class Teacher
{
public:


    Teacher(const char* name, int age)
    {
        this->age = age;
        strcpy(this->name, name);
    }


    void printT()
    {
        cout << name << "------" << age << endl;
    }
private:
    int age;
    const char *name;
};

int main(void)
{
    Teacher t1("t1", 31), t2(32, "t2"), t3(33, "t3");
    system("pause");
    return 0;
}
2019-05-19 23:14
风流泰
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2018-9-29
得分:0 
回复 2楼 dspure
谢谢哈
2019-05-20 11:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494818-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.125958 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved