草庐IT

virtual-desktop

全部标签

c++ - 有没有办法不继承子类中函数的 "virtualness"?

在C++中是否可以让一个类覆盖一个虚函数,但只有在通过父类(superclass)调用该函数时才具有虚拟分派(dispatch)(即,当它被静态类型为子类的东西调用时不存在)?我知道这不会发生,但有什么方法可以接近吗?想要这样做的原因是我有两个类都公开了一个flush()函数。在我的程序中的绝大多数时间,我直接在我知道类型的子类对象上调用flush(),因此我不需要虚拟分派(dispatch)。但是我想在混合中添加一个父类(superclass),这样我就可以很少将对任一类的实例的引用传递给doSomethingThenFlush()函数,该函数将调用flush()实际上。我知道我可以

Docker Desktop启动失败解决方案

DockerDesktop是一个流行的容器化平台,它可以帮助开发人员在本地计算机上管理和运行容器。然而,有时候在启动DockerDesktop时会遇到问题,导致它无法正常工作。本文将为您提供一些解决方案,以帮助您解决DockerDesktop启动失败的问题。检查系统要求:首先,请确保您的操作系统符合DockerDesktop的最低系统要求。DockerDesktop支持多个操作系统,包括Windows、macOS和Linux。不同的操作系统可能有不同的要求,请确保您的操作系统版本和硬件满足DockerDesktop的要求。检查虚拟化支持:DockerDesktop使用虚拟化技术来创建和管理容器

c++ - 将基类函数标记为 virtual 和 final 有什么意义吗?

这个问题在这里已经有了答案:What'sthepointofafinalvirtualfunction?(11个答案)关闭5年前。在variousexplanationsC++11的final关键字,我看到了这样的例子。classbase{public:virtualvoidf()final;};classderived:publicbase{public:virtualvoidf();//Illegalduetobase::f()declaredfinal.};这实际上是final的有用用法吗?为什么要在基类中声明一个虚函数(暗示它可以在派生类中有用地重写)然后立即将其标记为fina

install GitHub Desktop on ubuntu

UpdatePackagesOnyourUbuntuLinux,first,runthesystemupdatecommandthatensuresalltheavailablepackageupdatesareinstalledonit.Further,thiscommandwillalsorefreshthepackageindexcacheofthedefaultpackagemanageri.eAPTsudoaptupdate&&sudoaptupgradeAddShiftKeyGPGKeyAsweknowofficiallyGitHubDesktopclientappisnotava

c++ - 为什么我们不能在 COM 中使用 "virtual inheritance"?

我读过一些模糊的声明virtualinheritance没有提供COM需要的内存结构,所以我们只好使用普通的继承。发明虚拟继承是为了解决菱形继承(钻石问题)。有人可以向我展示这两种继承方法之间内存结构细节差异的图示吗?以及虚拟继承不适合COM的关键原因。最好有照片。非常感谢。 最佳答案 首先,在COM中总是使用虚拟继承的行为。QueryInterface无法返回不同的值,例如IUnknown基指针取决于用于获取它的派生类。但是您是对的,这与C++中的虚拟继承机制不同。C++不使用QueryInterface函数进行向上转换,因此它需

C++ 错误 : object of abstract class type is not allowed: pure virtual function has no overrider

继承有问题。我不知道我做错了什么。FigureGeometry.h#ifndefFIGUREGEOMETRY#defineFIGUREGEOMETRYstaticconstfloatPI=3.14159f;classFigureGeometry{public:virtualfloatgetArea()const=0;virtualfloatgetPerimeter()const=0;};#endifCircle.h#ifndefCIRCLE#defineCIRCLE#include"FigureGeometry.h"classCircle:publicFigureGeometry{fl

c++ - 为什么 C++ 编译器 (gcc) 认为函数是 `virtual' 字段?

我的类中有以下方法定义:virtualCalc*Compile(Evaluator*evaluator,ResolvedFunCall*fun_call,string*error);出于某种原因,GCC提示说:错误:“编译”声明为“虚拟”字段为什么它会认为Compile是一个字段而不是方法?有什么想法吗? 最佳答案 当第一个参数对它没有意义时,我得到了那个错误。检查Evaluator是否已知为类型:structA{virtualvoid*b(nonsense*,string*);};=>error:'b'declaredasa'vi

windows - 更改 desktop.ini 不会在 Windows 中自动更新文件夹图标

我正在使用这个批处理脚本将所有文件夹和子文件夹的图标更改为文件夹中的.ico文件。但是,文件夹图标在资源管理器中不会改变,除非我手动将资源管理器中的desktop.ini文件重命名为其他名称,然后返回到desktop.ini或将字母更改为大写。我什至写了一个批处理函数来自动重命名desktop.ini但它不起作用。手动重命名和从批处理文件重命名有什么区别?我如何让资源管理器使用新的desktop.ini?@echoofffor/r%%Iin(*.ico)do(attrib-r-s"%%~dpI."/S/Difexist%%~dpIdesktop.ini(del"%%~dpIdeskto

c# - 在 C# 的 VS 2012 Express for Desktop 中链接到 Windows API 的问题

我是Windows桌面编程的新手(或者至少从Windows3.0开始我就没做过)。我已经安装了VS2012ExpressforDesktop。我创建并运行了一个默认的基于表单的项目。现在我想使用以下行添加WindowsAPIperpinvoke.net:[DllImport("user32.dll")]staticexternboolSetLayeredWindowAttributes(IntPtrhwnd,uintcrKey,bytebAlpha,uintdwFlags);这段代码有两个错误:修饰符“extern”对此项目无效(在属性的右方括号中)预期的类、委托(delegate)、

【C++】多态 ④ ( 多态实现原理 | C++ 联编概念 | 链接属性 | 内部链接 | 外部链接 | 联编与链接 | 静态联编 | 动态联编 | 联编 与 virtual 关键字 )

文章目录一、C++联编概念1、联编引入2、链接属性(内部链接|外部链接)3、联编(C++语言)与链接(C语言)4、静态联编5、动态联编二、多态实现原理-联编与virtual关键字一、C++联编概念1、联编引入"联编"Linkage指的是将程序模块和代码互相关联的过程,将不同源文件中的同名函数或变量进行链接;在C++语言中,每个函数或变量都有一个链接属性,该链接属性决定了该函数或变量是否可以在其他源文件中使用;联编是通过声明函数或变量的链接属性进行控制;如果一个函数或变量具有外部链接属性,则可以在其他源文件中使用该函数或变量;如果一个函数或变量具有内部链接属性,则只能在其所在的源文件中使用该函数