C++中对私有成员变量进行赋值
c++类成员的访问属性可以分为三种,分别是:公共成员(public),私有成员(private),受保护成员(protected)。
在类对象的作用域内,公共成员在类的外部是可访问的。
私有成员和受保护成员则不可以直接访问。
下面一个小例子,使用公有成员函数对私有成员进行赋值:
class example
{
public:int a;int set(int b){return c = b;}
private:int c;
};
example one;one.a = 1;//对公有成员进行赋值
one.set(1);//对私有成员c的赋
在网上看到一道面试题:
private:int i;
public:int j;
}
void main(){
A a;
a.j=1;
}
怎么给i赋值,不能修改类
思路:class A{ private:int i; public:int j;}void main(){ A a; a.j=1; //用指针实现: int *pI=(int *) (&a); *pI=1234;}
C++中对私有成员变量进行赋值相关推荐
- 在python语言中定义私有成员变量的方法是_Python在类中有“私有”变量吗?
回答(11) 2 years ago python中的私有变量或多或少是一个hack:解释器故意重命名变量 . class A: def __init__(self): self.__var = 12 ...
- C++57个入门知识点_17 类的访问权限及C语言模拟类的封装(类的私有权限突破方法:编译期进行权限检查,运行期通过指针修改类的私有成员变量;利用函数指针对结构体中成员变量进行修改;CPU大小尾排列)
接上篇:C++57个入门知识点_16 类的标准写法(类名.成员变量.成员函数及对象命名规则:成员变量一般为私有,成员函数为公有并暴露给外部使用成员变量:防止类过大,声明写在.h,实现写在.cpp,调用 ...
- 封装之--通过类中公有方法访问私有成员变量
如何在ClassB中访问ClassA的私有成员变量?(典型的封装案例) 通过在ClassA中定义公有的成员方法,然后,在ClassB中通过ClassA的对象调用ClassA中的公有方法,来访问Clas ...
- C++ 私有成员变量的理解
私有成员变量的概念,在脑海中的现象是,以private关键字声明,是类的实现部分,不对外公开,不能在对象外部访问对象的私有成员变量. 然而,在实现拷贝构造函数和赋值符函数时,在函数里利用对象直接访问了 ...
- 私有成员变量理解的补充
在设计和实现当前类时,实现拷贝构造函数和赋值构造函数时,甚至在成员函数的内部是可以直接访问当前类的对象(以参数的形式)的私有成员变量的.考虑如下的代码: class Test { public:Tes ...
- java 反射私有变量赋值_通过反射,操作私有成员变量(取/赋值),调用私有方法...
Java的反射工具很强大,有句著名的话:No reflection ,no frameworks. 工作中直到涉及到UT,才体会到它的重要性,现归纳整理一个小例子: 反射工具类:import java ...
- 设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个带两
设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个 ...
- JavaScript中的私有成员
JavaScript中的私有成员 Douglas Crockford www.crockford.com 翻译:ShiningRay @ Nirvana Studio JavaScript 是世界上最 ...
- java中局部变量和成员变量
java中局部变量和成员变量 1. 定义的位置不一样 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中 2. 作业范围不一样 局部变量:只有方法当中才能使用,出了方法就不能再用 成员变量 ...
- Java中反射获取成员变量、构造方法、成员方法及类名
都说反射是框架的灵魂,但是反射到底是啥呢,今天就聊聊反射的基础操作,也是必备操作. 反射机制是在程序运行时,对任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用他的任意一个属性和 ...
最新文章
- mysql从某表中查询数据插入到另一表的处理
- 做一个成功的网络项目的详细推广流程
- 【视频课】一课彻底掌握深度学习图像分类各种问题,学习CV你值得拥有
- 阿里云2011.9.17招聘会笔试题
- linux_base-f10-10_7 linuxulator is not (kld)loaded
- JS之字符串截取函数substr
- HTML 5 canvas 基本语法
- 云图说|ASM灰度发布,让服务发布变得更敏捷、更安全
- LINUX 下 RABBITMQ安装与配置
- Mac系统如何使用文件标记功能?
- 免疫算法(matlab)
- 用php求常见图形的面积,技巧:数学图形面积计算的十种方法!
- [docker]dockerfile简介与应用
- 谷歌抢注18个“.中国”域名:扫清障碍
- 基于Auto.js的淘宝抢购助手+京东双十一活动助手。亲测运行正常!
- RAM与ROM的区别
- Linux中lvdisplay命令的用法,lvdisplay
- 怎么使用PS一键抠图?
- 走进互联网0基础秒杀-彭亮-专题视频课程
- 【基于RT-Thread+RA6M4的智能鱼缸系统设计之鱼我所欲也】
热门文章
- html盒子如何左对齐,【图片】怎么才能让盒子里的LI标签在实现的时候左对齐?在线等急!!!!【web前端开发吧】_百度贴吧...
- 模拟封装ajax,模拟jQ封装ajax,调用时出现Uncaught ReferenceError: param is
- 网络拓扑结构_全球网络拓扑测绘这样来实现
- php中js中文传值乱码,php解析JSON中文乱码问题的解决方法
- Angr安装与使用之使用篇(四)
- springcloud与springcloudalibaba版本对应关系
- 密码学基础(五):常见名词解释和密码学标准
- netdevice - 底层访问 Linux 网络设备
- SSM中 web.xml配置文件
- [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展trim,trimLeft,trimRight方法(2)...