virtual相关内容

在Java中从构造函数调用抽象方法可以吗?

假设我有一个实现 Runnable 接口的抽象基类. 公共抽象类 Base 实现 Runnable {受保护的 int 参数;公共基础(最终 int 参数){System.out.println("基础构造函数");this.param = 参数;//我在这里使用这个参数新线程(这个).开始();System.out.println("用参数创建的衍生线程" + param);}@覆盖抽象公共无 ..
发布时间:2021-11-26 16:10:33 Java开发

C#从静态方法调用抽象方法

我正在编写库,可用于不同的数据库引擎.抽象类具有抽象 DbParameter 构造函数并使用 System.Data.Common 中的类. 现在我有了 sutch 结构: 公共抽象类ASqlWorker{抽象受保护的 DbParameter DbParameterConstructor(String paramName, Object paramValue);} 现在,我可以从 ASq ..
发布时间:2021-11-25 09:16:30 C#/.NET

编译器如何优化密封类实现的虚方法

我想知道以下代码是如何优化的.特别是关于虚拟和直接呼叫.我已经评论过我认为一切都经过优化的方式,但这些只是猜测. 公共抽象类超级{公共抽象无效 Foo();公共无效 FooUser(){富();}}公开课 Child1 : 超级{公共覆盖无效 Foo(){//做点什么}}公共类 SealedChild :超级{公共覆盖无效 Foo(){//做点什么}}课程计划{无效主(){Child1 chil ..
发布时间:2021-11-25 09:15:08 C#/.NET

f#中受保护的虚拟方法

F# 不支持protected 方法的定义.这里解释了为什么 F# 将 virtual 方法替换为在抽象类中定义的 abstract 方法(请参阅 此处). 我想知道是否有办法完全阻止从派生类外部访问 abstract 方法. 解决方案 和 Patryk Ćwiek 一样,我也不认为这是可能的,但这里有一个替代方案: 从设计模式我们知道我们应该偏爱组合而非继承.根据我的经验, ..
发布时间:2021-11-25 09:11:17 C#

“虚拟"Objective-c 中方法的返回类型

我有一个应该是抽象的类.在其中一个抽象方法中,返回类型可能是 class1、class2 或 class3 的实例,具体取决于实现该方法的类.我想知道我应该如何在抽象类中声明该方法.我考虑过使用动态类型,但我希望将返回类型限制为 3 个类之一,而不是每种类型,此外我不确定我是否可以覆盖它,以便在继承类中返回类型不会匹配抽象类中的返回类型. 如果你能帮助我,我会很高兴, Tnx! 解决 ..
发布时间:2021-11-25 09:06:20 移动开发

C++ - “未声明成员函数"在派生类中

我在 MSVC++ 2008 中遇到了一个问题,其中 VS2008 抛出此编译错误: error C2509: 'render' : 成员函数未在 'PlayerSpriteKasua' 中声明 现在,让我感到困惑的是 render() 已定义,但在继承的类中. 类定义如下: SpriteBase -继承自->PlayerSpriteBase -继承人->PlayerSpriteKas ..
发布时间:2021-11-25 09:03:49 C/C++开发

虚类中的抽象方法

我有一个 c# 类,它有很多虚方法,其中一些方法本质上是抽象的(它们在子类中完全实现,基类是空的). 为了让它编译,我在基类中抛出一个 InvalidOperationException 并注释应该做什么.这只是感觉很脏. 有没有更好的方法来设计我的课程? 编辑:对于将在加拿大运行的应用程序的中间层,一半的方法是通用的,因此是虚拟的.一半的方法是针对特定省份的. 公共类Pers ..
发布时间:2021-11-25 09:02:35 C#/.NET

PHP 中 C++ 的虚函数的等价物是什么?

是抽象函数xxx吗? 我刚刚做了一个测试,似乎表明私有方法也是虚拟的? class a {私有函数测试(){回声 1;}}b 类扩展了一个 {私有函数测试(){回声 2;}公共函数调用(){$this->test();}}$instance = 新 b;$instance->call(); 输出为2 解决方案 在 PHP 中,所有私有函数都不是虚拟的,因此无需显式声明它们为虚拟的 ..
发布时间:2021-11-25 09:01:37 PHP

C++ 中的虚函数实例化有什么区别?

以下两个声明有什么区别? virtual void calculateBase() = 0;虚空calculateBase(); 我读到第一个 (=0) 是一个“纯抽象函数",但第二个是什么? 解决方案 第一个叫做纯虚函数.通常纯虚函数不会有任何实现,您不能创建包含纯虚函数的类的实例. 第二个是虚函数(即“普通"虚函数).一个类提供了这个函数的实现,但是它的派生类可以通过为这个方 ..
发布时间:2021-11-25 08:56:26 C/C++开发

用虚拟方法覆盖抽象方法

我试图用子类中的虚拟方法覆盖抽象类中的抽象方法.我(假设到现在?)理解抽象方法和虚拟方法之间的区别. 显然我做不到,但我的问题是......为什么?基于接受的答案此处 和以下场景,我只是没有看到问题: 公共抽象类 TopLevelParent{受保护的抽象无效 TheAbstractMethod();}公共类 FirstLevelChild1 : TopLevelParent{prote ..
发布时间:2021-11-25 08:55:22 C#/.NET

Rhino 模拟一个抽象类而不模拟它的虚方法?

我可以执行存在于使用 Rhino Mocks 模拟的抽象类上的虚拟方法的主体吗? 明确地说,我不是要模拟虚方法的行为.我正在尝试/test/虚拟方法(在模拟类上). 这个想法是对 Rhino Mocks 的公然滥用吗? 解决方案 是的,应该没问题.我不能说我已经尝试过了,但如果它失败了,我会感到非常惊讶. 编辑:我怀疑您想要 PartialMock 方法.举个例子: 使 ..
发布时间:2021-11-25 08:53:59 C#/.NET

比较:接口方法 vs 虚方法 vs 抽象方法

每种方法的优缺点是什么? 接口方法 虚拟方法 抽象方法 什么时候应该选择什么?做出这一决定时应牢记哪些要点? 解决方案 虚拟和抽象几乎相同.虚拟方法在基类中有一个可以选择性地被覆盖的实现,而抽象方法没有并且必须在子类中被覆盖.否则它们是相同的.在它们之间进行选择取决于情况.如果您有基本实现,则使用虚拟.如果您不这样做,并且您需要每个后代为自己实现它,您就选择抽象. 接 ..
发布时间:2021-11-25 08:51:10 C#/.NET

在Java中从构造函数调用抽象方法可以吗?

假设我有一个实现 Runnable 接口的抽象基类. 公共抽象类 Base 实现 Runnable {受保护的 int 参数;公共基础(最终 int 参数){System.out.println("基础构造函数");this.param = 参数;//我在这里使用这个参数新线程(这个).开始();System.out.println("用参数创建的衍生线程" + param);}@覆盖抽象公共无 ..
发布时间:2021-11-25 08:43:18 Java开发

为什么这段代码会在提到的地方崩溃?

你能详细说明为什么这段代码在提到的地方崩溃吗?我有点难住了.我猜这与 sizeof(int) 有关系,但我不太确定.谁能解释一下? 类基础{民众:虚空 SomeFunction(){printf("测试基地\n");}int m_j;};派生类:公共基础{民众:void SomeFunction(){printf("测试派生\n");}私人的:int m_i;};void MyWonderful ..
发布时间:2021-11-18 04:30:59 C/C++开发

通过Arduino IDE在虚拟串口上传Arduino代码

我下载了几个提供虚拟 COM 端口的软件.这些 COM 端口确实出现在 设备管理器 中,可以从 Arduino IDE 菜单中选择上传工具 -> 串口 -> COM3.它开始上传并达到 90%,然后它要么超时,要么什么都不做. 我想上传到虚拟 COM 端口,这样我就可以在另一个程序中读取编译输出文件.我根本不想使用我的 Arduino,也不想在上传时手动获取详细的输出文件.当我在真正的 Ar ..
发布时间:2021-11-17 04:01:00 其他开发

了解虚拟地址和虚拟地址空间

我读到,“当程序执行像:MOV REG,1000 这样的指令时,它会将内存地址 1000 的内容复制到 REG.可以使用索引生成地址,基址寄存器、段寄存器等方式. 这些程序产生的地址称为虚拟地址,构成虚拟地址空间." 谁能解释一下,(这些程序生成的地址被称为虚拟地址)是什么意思? 解决方案 程序和数据以数字形式存储在内存单元中.每个存储单元都有一个唯一编号,称为地址.代表有效地 ..

Apache 2 站点可用配置

我试图在一台 Apache 服务器上编写大约 5 个网站,而这些服务器都在一个 IP 地址上. 例如: /var/www/site1 /var/www/site2 /var/www/site3 /var/www/site4 /var/www/site5 但是,如果我在站点 2 上创建一个链接,只是使用,例如./index.php,你会期望它在/var/www/site2/ ..
发布时间:2021-11-11 06:04:10 服务器开发

围绕选择创建虚拟编辑块

我正在尝试创建一个脚本,允许我选择几行并在其周围创建一个 virtualedit 块;最长行后 1 列. 这是我的代码 函数!虚拟编辑()让 EndLine = line("'>")设置 virtualedit = 全部let maxlength = max(map(range(line("' ..
发布时间:2021-09-18 18:33:43 其他开发