VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 164|回复: 3

[已解决]35课求助

[复制链接]
86_avatar_middle
最佳答案
0 
在线会员 发表于 2020-3-23 18:50:43 | 显示全部楼层 |阅读模式
  1. #pragma once
  2. #include <iostream>
  3. using namespace std;
  4. class Student
  5. {
  6. public:
  7.         char* p_name;
  8.         char csex;
  9.         int inum;
  10.         int iage;
  11.         Student(char*name, char sex, int num, int age);
  12.         ~Student();
  13. };   这是构造函数
  14. #include "Student.h"
  15. #pragma warning(suppress : 4996)



  16. Student::Student(char* name, char sex, int num, int age):csex(sex),inum(num),iage(age)
  17. {
  18.         int clen = strlen(name);//获取学生姓名长度
  19.         p_name = new char[clen + 1];//动态生成学生姓名长度内存区域,多生成一个一遍\0结尾
  20.         memset(p_name, 0, clen + 1);//对申请的区域清零
  21.         for (int i=0;i<clen;i++)
  22.         {
  23.                 p_name[i] = name[i];
  24.         }
  25. };

  26. Student::~Student()
  27. {
  28.         cout << p_name << "正在删除信息。" << endl;
  29.         delete p_name;
  30.        
  31. }
  32.                   主函数

  33. int main()
  34. {
  35.         char name[8] = { "qeqewqq" };
  36.         Student* zhang_san = new Student("qeqewqq", 'f', 1001, 21 );//??[size=7]这里字符串不能直接传?错误提示在下面[/size]
  37.         delete zhang_san;
  38.         return 0;
  39. }
复制代码



严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C2664        “Student::Student(const Student &)”: 无法将参数 1 从“const char [8]”转换为“char *”        Project5        D:\our\Project5\mainclass.cpp        8       
最佳答案
31_avatar_small
2020-3-24 00:41:42
1."qeqewqq" 是常量,你可以把构造函数的第一个参数改为 const char* name
2.为什么不直接传入 name 这个数组呢?

其实你不打算修改 name 这个数组的话,还是建议加上 const 限定符的




上一篇:关于sql数据库的操作
下一篇:关于Open process的小疑问
31_avatar_middle
最佳答案
6 
donate_vip 发表于 2020-3-24 00:41:42 | 显示全部楼层    本楼为最佳答案   
bestAnswer
1."qeqewqq" 是常量,你可以把构造函数的第一个参数改为 const char* name
2.为什么不直接传入 name 这个数组呢?

其实你不打算修改 name 这个数组的话,还是建议加上 const 限定符的

评分

参与人数 1驿站币 +1 热心值 +1 收起 理由
86_avatar_small star0angel + 1 + 1 赞一个!

查看全部评分

84_avatar_middle
最佳答案
1 
在线会员 发表于 2020-3-24 10:15:53 | 显示全部楼层
为了编译 强转下也成 (char*)
为了代码合规性 那就老老实实的看什么时候用const了

点评

谢谢大神  发表于 2020-3-24 12:23

评分

参与人数 1驿站币 +1 热心值 +1 收起 理由
86_avatar_small star0angel + 1 + 1 很给力!

查看全部评分

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

GMT+8, 2020-9-18 17:49

Powered by CcTry.CoM

© 2009-2020 cctry.com

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