问题标签 [virtual]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
67 浏览

oop - 基于什么逻辑原因,virtual 和 new 修饰符在继承和多态问题上有不同的结果?

我知道,当我们在自己的基类中有一个虚函数,然后通过在派生类中重写它并在变量声明时考虑强制转换,与在派生类中使用 new 修饰符相比,我们有不同的结果。但为什么?是否有任何合乎逻辑的理由,或者我们必须毫无理由地学习它?

0 投票
8 回答
15323 浏览

.net - 如何创建虚拟 Windows 驱动器

我正在尝试创建一个 Windows 虚拟驱动器(如 c:\ )来映射远程存储。主要目的是以清晰的方式对用户进行操作。因此,用户不会知道他正在从另一个站点写/读。

我正在寻找可用的产品,我发现 FUSE 在 Windows 中不是一个选项,WebDAV 直接映射驱动器,我想在 Windows 和远程存储之间建立一个中间层来实现某种服务。存在另一种替代方案,例如非常昂贵的 Dokan 和 System.IO.IsolatedStorage 命名空间,似乎并没有明确地创建新的 Windows 驱动器。

可能 pismo ( http://www.pismotechnic.com/ ) 是最符合我要求的东西,但我会知道是否还有另一种选择,包括一些 Windows ( C++ 或 .NET ) 本机 API 来做到这一点。

谢谢阅读 :)

0 投票
5 回答
4774 浏览

windows - 为什么 Windows 为其系统地址空间保留 1Gb(或 2 Gb)?

众所周知,Windows 应用程序在 32 位系统上通常具有 2Gb 的私有地址空间。这个空间可以通过 /3Gb 开关扩展到 3Gb。

操作系统自己保留剩余的 4Gb。

我的问题是为什么?

在内核模式下运行的代码(即设备驱动程序代码)有自己的地址空间。为什么在一个独占的 4Gb 地址空间之上,操作系统还想为每个用户模式进程保留 2Gb 的空间?

我认为原因是用户模式和内核模式调用之间的转换。例如,调用NtWriteFile将需要内核调度例程的地址(因此系统在每个应用程序中保留 2Gb)。但是,使用SYSENTER,系统服务编号是否足以让内核模式代码知道正在调用哪个函数/服务?

如果您能向我解释为什么操作系统占用每个用户模式进程的 2Gb(或 1Gb)如此重要。

0 投票
3 回答
11288 浏览

c# - C#:什么是虚拟事件以及如何使用它们?

虚拟活动如何运作?你会如何覆盖它?那将如何运作?在什么情况下你会这样做?

例如,它是否可以替代受保护的 OnEvent 方法?那么继承类可以直接覆盖事件并直接引发它吗?或者那会是错误的还是不起作用?

MSDN 是这么说的:

可以使用 virtual 关键字将事件标记为虚拟事件。这使派生类能够通过使用 override 关键字来覆盖事件行为。覆盖虚拟事件的事件也可以被密封,这指定对于派生类它不再是虚拟的。

但这并没有让我变得更聪明。密封的东西很明显。

注意:我已经看过虚拟事件在 C# 中的工作原理?问题,但这并不是关于虚拟事件如何运作的。而是那个人如何从使用它们中获得结果。试图从他的例子和答案中弄清楚虚拟事件是什么,但无法真正理解它。

0 投票
2 回答
1456 浏览

c# - 本机 C++ 到托管 C++ 到 C#

我正在将大量 .h 和 .lib 文件从本机 C++ 移植到托管 C++ 以最终用作 C# 中的引用 .dll。

拜托,我知道将整个东西移植到 .NET 会容易得多,但如果可以的话,我会的。这是第 3 方,我只有 .lib(无导出)和 .h 文件可以使用。

一切都很顺利,直到我遇到了虚拟功能,现在我遇到了一些委托问题。

我遇到的错误包括:

错误 C3756:“ThreadFunc”:委托定义与现有符号冲突
错误 C2079:“MyWrapTest::MyThreadWrap::m_threadAttr”使用未定义的类“MyWrapTest::MyThreadAttrWrap” ' : 无法将参数 1 从 'MyWrapTest::MyThreadAttrWrap' 转换为 'MyThread *'

为了清楚起见,我将包括本机代码和我现在正在处理的东西。一、原生代码:

以及我正在开发的新东西:

0 投票
1 回答
288 浏览

virtual - virtual server 2005中如何扩充虚拟磁盘大小?

我正在使用 Virtual Server 2005 并使用 16GB 的虚拟硬盘。我需要将此虚拟磁盘扩展至 20GB。谢谢。比阿特丽斯

0 投票
3 回答
737 浏览

asp.net - .NET/IIS - 当网站在 2.0 中运行时,我可以使用 .NET 3.5 运行虚拟目录吗?

我现在有一个在 .NET 2.0 上运行的网站。

我有一个报告工具,它也需要在同一个网络服务器上运行,但它是用 3.5 编写的。

我可以在网站下创建一个名为“报告”的虚拟目录并针对 3.5 运行吗?所以用户可以去http://domain/Reports吗?

让我知道这是否没有意义。

0 投票
2 回答
2982 浏览

asp.net - 无法从 ASP.NET 部署中站点下的虚拟目录访问 bin 文件夹程序集

我有一个 ASP.NET Web 应用程序,它有 3 个项目来处理应用程序的 3 个不同层(UI、BL 和数据访问)。当我发布 UI 项目时,将在解决方案中创建一个名为 Precompiled 的目录,并且文件将在那里可用。该文件夹将有一个 BIN 目录,其中包含所需的 DLL(引用的 DLL 和业务层项目的 DLL 和 DataAccessLayer 项目的 DLL)。

这工作正常。现在我想使用相同的 BL 和 DataAcess 层来运行多个 UI(网站)。我想拥有一个名为 WebsiteA、WebSiteB、MyWebSite1、ShyjusWeb 等的网站。我想为其中的每一个创建虚拟目录。所以我创建了一个网站,并在该网站下为上述网站创建了虚拟目录。我将 index.asp(我的解决方案中的 UI 项目)放在映射到一个虚拟目录的文件夹中,当尝试访问时,我收到如下错误:

该页面似乎无法从 BIN 文件夹访问所需的 DLL。有没有办法解决这个问题?IIS 6.0 我正在玩。我的文件夹层次结构现在是这样的:

根文件夹 - > Bin 文件夹,各种 UI 相关文件和文件夹现在转换为虚拟目录的文件夹(WebSiteA)。在 WebSiteA 中,我有 inde.aspx,它与根文件夹中可用的 index.aspx 的副本相同。

我需要有相同的网站(复制每个网站只有一些 CSS 更改)。如果我从我的根目录复制 Bin 文件夹并将其与 index.aspx 一起粘贴到每个虚拟目录文件夹中,它就可以工作。但我不想每个站点都有相同的 BIN 文件夹。我只想有一个 BIN,它应该在 ROOT 文件夹中

0 投票
5 回答
9403 浏览

c++ - 虚拟基类数据成员

为什么建议在虚拟基类中不要有数据成员?

功能成员呢?如果我有一个所有派生类共有的任务,虚拟基类是否可以执行该任务,或者派生类是否应该从两个类继承 - 从虚拟接口和执行任务的普通基类?

谢谢。

0 投票
6 回答
6632 浏览

c++ - 用函数指针调用虚成员函数的基类定义

我想使用成员函数指针调用虚函数的基类实现。

在上面的代码中,func 的派生类实现将从 callFunc 中调用。有没有办法可以保存指向 Base::func 的成员函数指针,或者我必须以using某种方式使用?

在我的实际应用程序中,我使用 boost::bind 在 callFunc 中创建了一个 boost::function 对象,稍后我用它来从程序的另一部分调用 func 。因此,如果 boost::bind 或 boost::function 有某种方法可以解决这个问题,那也会有所帮助。