众所周知,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中变量的三种方法的更多相关文章

  1. 转载:WinForm中播放声音的三种方法

    转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...

  2. MATLAB中多行注释的三种方法

    MATLAB中多行注释的三种方法 A. %{ 若干语句 %} B. 多行注释: 选中要注释的若干语句, 编辑器菜单Text->Comment, 或者快捷键Ctrl+R 取消注释: 选中要取消注释 ...

  3. 痞子衡嵌入式:在IAR开发环境下将关键函数重定向到RAM中执行的三种方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将关键函数重定向到RAM中执行的三种方法. 嵌入式项目里应用程序代码正常是放在 Flash 中执行的,但有时候也需要将 ...

  4. jsp值传到后台Struts2中的action三种方法

    Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" n ...

  5. linux修改环境变量的三种方法【转】

    [环境变量配置的三个方法] 如想将一个路径加入到$PATH中,可以像下面这样做:  1. 控制台中,不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时 ...

  6. JavaScript 复制变量的三种方法

    参考:Copying Objects in JavaScript - Orinami Olatunji(@orinamio_) October 23, 2017    直接将一个变量赋给另一个变量时, ...

  7. 交换两个变量的值,不借助第三个变量的 三种方法(JS实现)

    第一种:算术运算法 var a = 10; var b = 12; a = b - a; b = b - a; a = b + a; 它的原理是:把a.b看做数轴上的点,围绕两点间的距离来进行计算.具 ...

  8. SpringBoot学习笔记(5)----SpringBoot中异常处理的三种方法

    对于异常的处理,Spring Boot中提供默认的一个异常处理界面,如下图: 但是在实际的运用开发中,这样的页面显然是不友好的,Spring Boot也提供了自定义异常处理的方式,如下总结三种一场处理 ...

  9. Selenium获取input输入框中值的三种方法

    第一种用jQuery的val方法: js = "return $('input').val();" driver.execute_script(js) 第二种用jQuery的att ...

随机推荐

  1. 《JavaScript高级程序设计》读书笔记 ---数据类型

    ECMAScript 中有5 种简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number.String和Object——复杂数据类型,Object 本质上是由一组 ...

  2. 如何在MFC中启动其它的(.exe)可执行文件

    ShellExecute(NULL,   "open",   "http://www.sina.com.cn",   NULL,   NULL,   SW_SH ...

  3. hdu_5775_Bubble Sort(树状数组)

    题目链接:hdu_5775_Bubble Sort 题意: 让你找每一个数在冒泡排序中最右边和最左边的位置的差值 题解: 还是官方题解,讲的已经很清楚了 1012 Bubble Sort 考虑一个位置 ...

  4. ArrayList implementation

    check here. tip: 当使用remove方法时,index后边的元素要自动前移.Nothing special.

  5. project文件问题

    到编译文件中看看,红色的删除,坤哥这样做的 .

  6. Laravel中使用Redis

    安装PHP PRedis PRedis是laravel访问redis的扩展包,只需要下载原码即可,不需要安装PHP扩展(如php-redis.so).但在这之前需要了解一个composer,因为lar ...

  7. redis配置密码认证

    redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 ? 1 #requirepass foobared 去掉行前的注 ...

  8. Row_Number实现分页

    1:首先是 select ROW_NUMBER() over(order by id asc) as 'rowNumber', * from table1 生成带序号的集合 2:再查询该集合的 第 1 ...

  9. C++设计模式-Singleton单例模式

    template <typename T> class Singleton { public: template <typename... Args> static T* In ...

  10. 几种JAVA加密算法

    转自:http://www.cnblogs.com/mycodelife/archive/2009/04/22/1441624.html