VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1295|回复: 13

有什么方法可以强制访问私有数据成员

[复制链接]

2

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-29 09:20:01 | 显示全部楼层 |阅读模式
做好了一个类,要做测试,
测试其中的私有数据成员,但它们并没有Set方法,
想直接往这些私有数据成员中写一些数值,进行测试,
有没有一种强制的方法,可以往其中写入数值?
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-2 00:00:02 | 显示全部楼层
顶一下
不过你没给类的私有成员赋值的函数的话,奇怪你这个类以后怎么用???
回复

使用道具 举报

0

主题

12

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-3-2 11:15:01 | 显示全部楼层
firend
回复

使用道具 举报

0

主题

3

帖子

53.00

积分

注册会员

Rank: 2

积分
53.00
发表于 2020-3-2 11:41:05 | 显示全部楼层
友元可以提供访问私有成员(私有数据成员和私有方法)的机制,但也可以通过指针偏移的试访问,这种方式需要知道类的内存布局,否则容易出错。
回复

使用道具 举报

0

主题

22

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-3-3 17:45:01 | 显示全部楼层
C++中允许友元破坏封装性

   类中的私有成员一般是不允许该类外面的任何函数访问的,但是友元便可打破这条禁令,它可以访问该类的私有成员(包含数据成员和成员函数)。友元可以是在类外定义的函数,也可以是在类外定义的整个类,前者称友元函数,后者称为友元类。友元打破了类的封装性,它是C++另一个面向对象的重要牲。
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-4 11:45:01 | 显示全部楼层
firend
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-4 22:15:01 | 显示全部楼层
friend
回复

使用道具 举报

0

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-3-5 12:30:01 | 显示全部楼层
友元可以
但是加个友元还不如加个set方法
回复

使用道具 举报

2

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-3-17 10:30:01 | 显示全部楼层
不想用friend,因为我不想修改原来的文件
有没有其他方法?
回复

使用道具 举报

0

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-3-20 00:00:02 | 显示全部楼层
自己重写编译器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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