强制性输出private中变量的三种方法
众所周知,private里面的变量不可以输出,但是也可以通过特殊途径获得。
1.通过指针暴力内存,把它索罗出来,方法:调试,破掉语法。
并且还可以对类对象进行修改。
// Thread.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <WinSock2.h>
#include <Windows.h> #include <iostream>
using namespace std;
class MyClass
{
public:
MyClass();
~MyClass();
int m_1;
protected:
int m_2;
private:
int m_3;
}; MyClass::MyClass()
{
m_1 = ;
m_2 = ;
m_3 = ;
} MyClass::~MyClass()
{
}
int main()
{
MyClass Object; printf("%d\r\n", *((int*)(&Object) + ));
return ;
}
卷珠帘
2.在类中提供函数,但丧失了读的属性。
// Thread.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <WinSock2.h>
#include <Windows.h> #include <iostream>
using namespace std; class MyClass
{
public:
MyClass();
~MyClass();
int m_1;
int Getm_3()
{
return m_3;
}
protected:
int m_2;
private:
int m_3;
}; MyClass::MyClass()
{
m_1 = ;
m_2 = ;
m_3 = ;
} MyClass::~MyClass()
{
}
int main()
{
MyClass Object;
printf("%d\r\n", Object.Getm_3()); //必须提供接口,并且只能读,不能修改。
return ;
}
卷珠帘
3.王道:启动线程与类结合。线程可以破除class的私有属性。
// Thread.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <WinSock2.h>
#include <Windows.h> #include <iostream>
using namespace std;
//类与线程,线程可以访问非全局变量,尤其是私有指针 class MyClass
{
public:
MyClass();
~MyClass();
int m_1;
protected:
int m_2;
private:
int m_3;
public:
static DWORD WINAPI ThreadProc(LPVOID Param); //线程不能所属一个类里,所以必须加关键字,static
VOID Sub_1()
{
HANDLE ThreadHandle = CreateThread(NULL, , (LPTHREAD_START_ROUTINE)ThreadProc, this, , NULL);
WaitForSingleObject(ThreadHandle, INFINITE);
}
}; MyClass::MyClass()
{
m_1 = ;
m_2 = ;
m_3 = ;
} MyClass::~MyClass()
{
} DWORD WINAPI ThreadProc(LPVOID Param);
int main()
{
MyClass Object;
Object.Sub_1();
return ;
} DWORD WINAPI MyClass::ThreadProc(LPVOID Param)
{
printf("%d\r\n", ((MyClass*)(Param))->m_3);
return ;
}
卷珠帘
强制性输出private中变量的三种方法的更多相关文章
- 转载:WinForm中播放声音的三种方法
转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...
- MATLAB中多行注释的三种方法
MATLAB中多行注释的三种方法 A. %{ 若干语句 %} B. 多行注释: 选中要注释的若干语句, 编辑器菜单Text->Comment, 或者快捷键Ctrl+R 取消注释: 选中要取消注释 ...
- 痞子衡嵌入式:在IAR开发环境下将关键函数重定向到RAM中执行的三种方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将关键函数重定向到RAM中执行的三种方法. 嵌入式项目里应用程序代码正常是放在 Flash 中执行的,但有时候也需要将 ...
- jsp值传到后台Struts2中的action三种方法
Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" n ...
- linux修改环境变量的三种方法【转】
[环境变量配置的三个方法] 如想将一个路径加入到$PATH中,可以像下面这样做: 1. 控制台中,不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时 ...
- JavaScript 复制变量的三种方法
参考:Copying Objects in JavaScript - Orinami Olatunji(@orinamio_) October 23, 2017 直接将一个变量赋给另一个变量时, ...
- 交换两个变量的值,不借助第三个变量的 三种方法(JS实现)
第一种:算术运算法 var a = 10; var b = 12; a = b - a; b = b - a; a = b + a; 它的原理是:把a.b看做数轴上的点,围绕两点间的距离来进行计算.具 ...
- SpringBoot学习笔记(5)----SpringBoot中异常处理的三种方法
对于异常的处理,Spring Boot中提供默认的一个异常处理界面,如下图: 但是在实际的运用开发中,这样的页面显然是不友好的,Spring Boot也提供了自定义异常处理的方式,如下总结三种一场处理 ...
- Selenium获取input输入框中值的三种方法
第一种用jQuery的val方法: js = "return $('input').val();" driver.execute_script(js) 第二种用jQuery的att ...
随机推荐
- 查询全国的省市信息<option>拼接
//修改页面获取省市信息 function getProvinceUSER_AREA1(){ $.ajax({ type:'post', url:'<%=path%>/user/findU ...
- JPA 系列教程13-复合主键-@EmbeddedId+@Embeddable
复合主键 指多个主键联合形成一个主键组合 需求产生 比如航线一般是由出发地及目的地确定,如果要确定唯一的航线就可以用出发地和目的地一起来表示 ddl语句 同复合主键-2个@Id和复合主键-2个@Id+ ...
- 配置elasticsearch 以及ik分词
https://github.com/medcl/elasticsearch-analysis-ikhttps://www.elastic.co/downloads/past-releases/ela ...
- 用开源软件建垂直搜索引擎 转载 http://news.cnblogs.com/n/60041/
用Solr.Nutch等开源软件来构建电子元器件垂直搜索引擎涉及很多实现细节,本文结合实际应用系统对数据采集.中文搜索.结果输出.分页处理.整合数据库等重点问题提出了切实可行的解决方法. 用开源软件建 ...
- aspx中如何加入javascript
Response.Write("<script>window.location ='aaa.aspx';</script>"); Response.Writ ...
- 《JS权威指南学习总结--4.9.3in和instanceof运算符》
内容要点: 一.in运算符 in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象.如果右侧的对象拥有一个名为左操作数数值的属性名,那么表达式返回true. 例如: va ...
- 更改web project 访问项目名称
1.新建web project 2.右键该项目名称------properties 3.访问该项目的URL http://localhost:8806/ssm/.......... 相比书写整个项目名 ...
- 使用express创建web服务器
使用express创建web服务器 laiqun@msn.cn Contents 1. 简单的express服务器 2. 静态文件服务 3. 路由 4. 中间件 1. 简单的express服务器 安装 ...
- spring 基于XML和注解的两种事务配置方式
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- mongodb分片
在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来 ...