C++中名字隐藏是什么?

让我们通过一个例子来讲解C++中的名字隐藏。在C++中,如果一个类里有一个重载的方法, 你用另一个类去继承它并重写(覆盖)那个方法。你必须重写所有的重载方法, 否则未被重写的方法会因为名字相同而被隐藏,从而使它在派生类中不可见。

请看例子:

上面的类中有两个方法(重载的方法),如果你想在派生类中重写一个参数的函数, 你可以这么做:

 

上面的main函数中,第2个MethodA在编译时会报错,提示没有与之匹配的函数。 这是因为两个参数的MethodA在派生类中是不可见的,这就是名字隐藏。

名字隐藏与虚函数无关。所以不管基类中那两个函数是不是虚函数, 在这里都会发生名字隐藏。解决方法有两个。第一个是将2个参数的MethodA换一个名字, 那么它在派生类中就可见了。但我们既然重载了MethodA,说明它们只是参数不同, 而实际上应该是在做相同或是相似的事的。所以换掉名字并不是个好办法。因此, 我们一般采用第二种方法,在派生类中重写所有的重载函数。


原文地址:http://www.cricode.com/757.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 隐藏进程是一种隐藏计算机系统正在运行的进程的方法,目的是为了防止被探测和关闭。下面是一些可能的思路来隐藏进程: 1. 修改进程名:通过修改进程的名字,使其在任务管理器或进程监控工具变得不容易被察觉和发现。可以通过修改进程名字的方式,使其与系统其他普通进程的名称相似或者更改为一些无害的进程名称,以此来隐藏进程的存在。 2. 修改进程属性:通过修改进程的属性,可以将其设置为隐藏或系统进程,并且不在任务管理器等工具显示。这样做可以使进程不容易被察觉,保护进程免受关闭的风险。 3. 加载驱动程序:通过加载驱动程序来隐藏进程,驱动程序可以通过修改操作系统的内核或者系统调用,来隐藏正在运行的进程。这种方法相对复杂,需要对操作系统内部有深刻的理解。 4. 使用Rootkit技术:Rootkit是一种恶意软件,可以修改操作系统的核心组件,从而隐藏恶意进程。它可以修改系统API,使得在进程列表看不到指定的进程。Rootkit技术风险较高,但也是一种隐藏进程的方法。 需要注意的是,隐藏进程可能违反计算机安全政策和法律法规,因此在使用这些方法之前,需要确保自己的行为合法合规,遵守计算机安全规范和法律法规。 ### 回答2: 隐藏进程是指将某个进程在系统不显示或屏蔽起来,使其在任务管理器或进程列表不可见。以下是隐藏进程的一些思路: 1. 修改进程名:通过修改进程名可以使其在任务管理器或进程列表显示为其他名称,从而隐藏起来。可以使用专门的工具或编程技巧来实现。 2. 修改进程属性:通过修改进程的属性,如PID (Process ID) 或进程描述符(Process Descriptor)可以使其不被系统所识别,从而实现隐藏进程的效果。 3. 使用Rootkit技术:Rootkit是一种恶意软件,可以对操作系统核心进行修改,从而隐藏进程并在系统留下后门。它可以修改系统函数、Hook系统调用等来实现对进程的隐藏。 4. 修改注册表或系统配置文件:通过修改注册表或系统配置文件,可以使系统无法检测到特定进程的存在,从而达到隐藏进程的目的。 5. 使用虚拟化技术:通过在虚拟环境运行进程,可以隐藏其在宿主系统的存在。虚拟化技术可以创建一个隔离的环境,让进程在其运行,不会在宿主系统留下痕迹。 需要注意的是,隐藏进程并非一种良性的行为,通常被恶意软件或黑客用来逃避检测、传播病毒或进行攻击等不法目的。对于正常的系统管理和安全防护来说,隐藏进程是一种不可接受的行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值