VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 814|回复: 6

无法将参数 1 从“const char [12]”转换为“char *”

[复制链接]
81_avatar_middle
最佳答案
0 
在线会员 发表于 2021-5-27 10:59:12 | 显示全部楼层 |阅读模式
按照老师的编程,检查了好几遍,就是不晓得为啥会这样

#pragma once
#include<iostream>
#include <string>
using namespace std;


class Student
{
public:
        char *p_name;
        char sex;
        int num;
        int age;

        Student(char* pname, char t_sex, int t_num, int t_age);

        ~Student();
};




#include "CStudent.h"
#include<iostream>
#include <string>

Student::Student(char* pname, char t_sex, int t_num, int t_age):sex(t_sex), num(t_num), age(t_age)
{
        if (pname)
        {
                int n_len = strlen(pname);
                p_name = new char[n_len + 1];
                memset(p_name, 0, n_len + 1);
                strcpy(p_name, pname);
        }
       
       
       
}

Student::~Student()
{
        if (p_name)
        {
                delete[] p_name;
                p_name = NULL;
        }
}



#include<iostream>
#include <string>
#include"CStudent.h"
using namespace std;

void test()
{
        Student stud("zhangsan", 'f', 1001, 20);
}

int main()
{
        Student *szhang_san=new Student ("zhangsasdfafafaan",'f',1001,20);
        return 0;
}

error C2664: “Student::Student(const Student &)”: 无法将参数 1 从“const char [12]”转换为“char *”




上一篇:visual studio 2017
下一篇:类的继承与派生中无法解析的外部命令问题
31_avatar_middle
最佳答案
62 
在线会员 发表于 2021-5-27 20:03:46 | 显示全部楼层
1、C++ -> 语言 -> 符合模式 -> 设置为否,这样可以兼容老项目。
2、对于别人写的,无法修改的东西,可以强转类型
3、自己的项目可以选择强转,也可以选择修改形参

第一种方法是比较简便通用
31_avatar_middle
最佳答案
62 
在线会员 发表于 2021-7-3 09:36:09 | 显示全部楼层
sxlllslhy 发表于 2021-7-1 21:32
萌新学到啦,感谢感谢!

一起加油!!!!!!
70_avatar_middle
最佳答案
49 
在线会员 发表于 2021-5-27 17:23:14 | 显示全部楼层
高版本的vs 类型检查比较严格,
两种办法
1. 强制类型转换 (char*)"zhangsasdfafafaan"
2. 修改参数类型  Student(const char* pname, char t_sex, int t_num, int t_age);
就这个类来说,推荐第二种
40_avatar_middle
最佳答案
0 
在线会员 发表于 2021-7-1 19:15:32 | 显示全部楼层
tony666 发表于 2021-5-27 17:23
高版本的vs 类型检查比较严格,
两种办法
1. 强制类型转换 (char*)"zhangsasdfafafaan"

萌新学到啦,感谢感谢!!无法将参数 1 从“const char [12]”转换为“char *”
40_avatar_middle
最佳答案
0 
在线会员 发表于 2021-7-1 21:32:13 | 显示全部楼层
cpp2019 发表于 2021-5-27 20:03
1、C++ -> 语言 -> 符合模式 -> 设置为否,这样可以兼容老项目。
2、对于别人写的,无法修改的东西,可以 ...

萌新学到啦,感谢感谢!无法将参数 1 从“const char [12]”转换为“char *”
40_avatar_middle
最佳答案
0 
在线会员 发表于 2021-7-3 21:05:22 | 显示全部楼层

嗯嗯,加油加油!无法将参数 1 从“const char [12]”转换为“char *”
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-11 12:08

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表