VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 179|回复: 4

[已解决]通过在构造函数的形参中设置字符型指针,给类类型的名字这一成员动态初始化

[复制链接]
57_avatar_middle
最佳答案
0 
在线会员 发表于 2020-3-14 15:59:31 | 显示全部楼层 |阅读模式
通过在构造函数的形参中设置字符型指针,给类类型的名字这一成员动态初始化
1.首先我不久前才看老师的教学视频,才看到P37.35类的构造函数和解析函数,可能连新手都算不上,写的不对,见笑了
2.我有两个问题,
第一个,我图片上的构造函数和老师的一样,就是在main函数中,使用构造函数时候,
假如构造函数是这样的:mash_book2(char* tname, int tyeshu, int tjiage, char* tneirong);
老师的main函数中是这样写的:mas_book2 a=("aaaaaaaaaaaaaaaa",10,10,"bbbbbbbbbbbb")这里怎么可以把实参的字符串传递给形参的指针呢
第二个问题:程序如图:结果却显示出现了地址冲突;
第三个问题,
把char* name = new char[len + 1];
char* neirong = new char[len1 + 1];
memset(name, 0, len+1);
memset(neirong, 0, len1 + 1);
strcpy_s(name, len+1,tname);
strcpy_s(neirong, len1+1,tneirong);

改成
for (int i = 0;i < len + 1;i++)
        {
                *(name + i) = *(tname + i);
        }
        for (int j = 0;j < len + 1;j++)
        {
                *(neirong + j) = *(tneirong + j);
        }
为什么显示我的name 和neirong并没有被初始化;难道用for循环把,形参的指针所指向的地址中的字符传递给变量的指针所指向的地址中,
这方法不能初始化成员吗
最佳答案
85_avatar_small
2020-3-14 23:08:55
问题1
char数组的总地址(指针)  与  char1个字符的地址(指针)   什么时候可以通用
问题2
在没有权限或没有定义的地址  操作地址上装的值
问题3
指针换个叫法叫  内存地址    ; 带数据类型的 内存地址 加减单位 就是一个数据内型地址的长度
上面的问题 看出全是指针问题.

多看看内存地址 这个有点绞.  要琢磨很久的




上一篇:高性能多线程安全链表,怎么设计?
下一篇:麻烦大家帮我看一下这道题,谢谢!
51_avatar_middle
最佳答案
82 
online_admins 发表于 2020-3-14 18:12:37 | 显示全部楼层
楼主把整个代码拷贝上来一份吧。地址冲突没明白是什么地址冲突?
我在本地试一下
57_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-3-14 21:21:30 | 显示全部楼层
谢谢老师,我试了一下午,一点点的找不同,发现我因为在构造函数中又重新把成员name定义为char*name指针,导致在构造函数里name只是局部变量,并不是成员变量,所以一直在给局部指针name赋值,而不是给成员赋值,导致系统提示成员并没有初始化。
85_avatar_middle
最佳答案
3 
在线会员 发表于 2020-3-14 23:08:55 | 显示全部楼层    本楼为最佳答案   
bestAnswer
问题1
char数组的总地址(指针)  与  char1个字符的地址(指针)   什么时候可以通用
问题2
在没有权限或没有定义的地址  操作地址上装的值
问题3
指针换个叫法叫  内存地址    ; 带数据类型的 内存地址 加减单位 就是一个数据内型地址的长度
上面的问题 看出全是指针问题.

多看看内存地址 这个有点绞.  要琢磨很久的
57_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-3-15 17:20:52 | 显示全部楼层
Syc 发表于 2020-3-14 18:12
楼主把整个代码拷贝上来一份吧。地址冲突没明白是什么地址冲突?
我在本地试一下

通过在构造函数的形参中设置字符型指针,给类类型的名字这一成员动态初始化
通过在构造函数的形参中设置字符型指针,给类类型的名字这一成员动态初始化
老师你看我跟你写的一样,怎么我这就不可以用字符串呢
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

GMT+8, 2020-9-29 16:09

Powered by CcTry.CoM

© 2009-2020 cctry.com

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