downcast相关内容

C++ 继承向下转型

我的基类如下: class point//具体类{... //执行}class subpoint : public point//具体类{... //执行} 如何从点对象转换为子点对象?我已经尝试了以下所有三个: point a;subpoint* b = dynamic_cast(&a);子点* b = (子点*)a;子点 b = (子点)a; 这些演员表有什么问题? 解 ..
发布时间:2021-12-31 22:05:10 C/C++开发

C++ 不能通过虚基 A 从基 A 转换为派生类型 B

我有三个班级: class A {};B 类:虚拟公共 A {};C 类:虚拟公共 A {};D类:公共B,公共C{}; 尝试从 A* 静态转换到 B* 我收到以下错误: 不能通过虚基A从基A转换为派生类型B 解决方案 为了理解强制转换系统,您需要深入研究对象模型. 简单层次模型的经典表示是包含:如果 B 派生自 A 那么 B 对象实际上将包含一个 A 子对象以及它自己的属性. ..
发布时间:2021-12-31 21:53:49 C/C++开发

Java 中的显式类型转换示例

我在 http://www.javabeginner.com/learn-java/上遇到过这个例子java-object-typecasting 在它谈到显式类型转换的部分中有一个例子让我感到困惑. 例子: class Vehicle {字符串名称;车辆() {name = "车辆";}}类重型车辆扩展车辆 {重型车辆(){name = "重型车辆";}}类卡车扩展重型车辆{卡车() { ..
发布时间:2021-12-31 21:32:31 Java开发

是否可以使用显式类型转换将基类对象分配给派生类引用?

是否可以在 C# 中使用显式类型转换将基类对象分配给派生类引用? 我已经试过了,但它产生了一个运行时错误. 解决方案 没有.对派生类的引用必须实际引用派生类的实例(或 null).否则你会如何期望它的行为? 例如: object o = new object();字符串 s = (字符串) o;int i = s.Length;//这可以明智地做什么? 如果您希望能够将基类 ..
发布时间:2021-12-31 21:27:39 C#/.NET

将基类转换为派生类

是否可以在 C# 中将基类对象显式转换为其派生类之一?目前认为我必须为我的派生类创建一个构造函数,它接受一个基类对象作为参数并复制属性值.我不太喜欢这个主意,所以我想尽可能避免它. 这似乎不应该工作(对象被实例化为新基,因此不应为派生类的额外成员分配内存)但 C# 似乎允许我这样做: class BaseClass{……一些东西……}类派生类:基类{public bool MyDerive ..
发布时间:2021-12-17 19:10:13 C#/.NET

将当前对象 ($this) 转换为后代类

我有一个类,可能需要将对象更改为后续的后代类.这可能吗?我知道一种选择是返回它的副本,但使用子类代替,但实际修改当前对象会很好......所以: class myClass {受保护的 $var;函数 myMethod(){//改变这个对象的类的函数重铸(myChildClass);}}class myChildClass 扩展 myClass {}$obj = new myClass();$o ..
发布时间:2021-12-12 08:19:57 PHP

垂头丧气

我是 C#(和 OOP)的新手.当我有如下代码时: class Employee{//一些代码}班主任:员工{//一些代码} 问题 1:如果我有其他代码可以做到这一点: Manager mgr = new Manager();雇员 emp = (雇员)mgr; 这里的 Employee 是一个 Manager,但是当我把它像这样转换成一个 Employee 时,这意味着我在向上转换它吗? ..
发布时间:2021-12-12 08:10:48 C#/.NET

用于 AST 操作的 Rc 中的向下转换特征

我正在尝试在 Rust 中操作 AST.会有很多操作,我希望我的树是不可变的,所以为了节省时间,所有引用都将是 Rcs. 我的树节点将如下所示: enum 条件 {等于(Rc表达式,Rc表达式),小于(Rc表达式,Rc表达式),...}枚举表达式{加(Rc表达,Rc表达),...} 我想用另一个相同类型的节点替换给定类型的随机节点.为了对树进行通用操作,我做了一个特征: trait A ..
发布时间:2021-11-26 17:38:48 其他开发

关于类变量的向上转换和向下转换有什么区别

就类变量而言,向上转型和向下转型有什么区别? 例如在下面的程序类中Animal只包含一个方法而Dog类包含两个方法,那么我们如何将Dog变量转换为Animal变量. 如果转换完成,那么我们如何使用Animal的变量调用Dog的另一个方法. 类动物{public void callme(){System.out.println("在动物的呼唤中");}}类狗扩展动物{public vo ..
发布时间:2021-11-25 13:05:52 Java开发

HashSet的迭代器出现问题

我试图查看HashSet是否将是我下一个项目的解决方案,所以我正在做一些非常简单的测试来检查功能.我有一个简单的类 Klant : 公共类Klant {private int klantNummer;公共Klant(int nummer){this.klantNummer = nummer;}public int getKlantNummer(){返回this.klantNummer;}} ..
发布时间:2021-05-10 19:04:33 Java开发

真的无法向下转换吗?对我来说很好

我知道已经发布了与同一主题相关的一些问题,但是我看到了不同的答案,因此我对哪个答案正确感到非常困惑. 在下面的链接上,人们提到无法向下转换 将基础类型转换/转换为派生类型 在下面的链接上,人们提到仅当派生类是基类的实例时,才可能进行向下转换 向下和向上 我做了一个小实验,并使用直接强制转换在小型项目(C#)上实现了向下转换,例如:DerivedClass dc =(Derived ..
发布时间:2020-11-28 00:11:07 C#/.NET

向下转换C#中的对象列表

如何向下转换对象列表,以便将列表中的每个对象向下转换为派生类的对象? 这是场景. 我有一个带有List基本项目的基类,并且有两个继承自它的类: public class BaseClass { public List items; protected BaseClass() { // some code to build ..
发布时间:2020-11-27 22:50:41 C#/.NET

修复此铸件行为的最干净方法

想象一下,我有一个列表,其中包含50种不同类型的Node的某些子类,我希望它们是同一类型,否则将得到ClassException.我有一个接收此列表的方法,以及一个持有并占有某种类型的节点的方法 我想做这样的事情: public receive(List list, Node node){ for ( ..
发布时间:2020-11-13 05:48:29 Java开发

如何更改此设计以避免下降?

假设我有一些对象的集合,这些对象都从基类继承。像... 抽象公共类动物 { } 公共类狗:动物 { } 类猴子:动物 { }现在,我们需要喂养这些动物,但不允许他们知道如何喂养自己。如果可以,答案将很简单: foreach(myAnimals中的Animal a) { a.feed(); } 但是,他们不知道如何养活自己,所以我 ..
发布时间:2020-10-21 01:34:43 C#/.NET

是否可以通过显式类型转换将基类对象分配给派生类引用?

是否可以在C#中使用显式类型转换将基类对象分配给派生类引用?。 我已经尝试过并创建运行-时间错误。 解决方案 否。对派生类的引用实际上必须引用派生类的实例(或null)。否则,您会期望它如何表现? 例如: object o =新的object(); string s =(string)o; int i = s.Length; //这可以明智地做些什么? ..
发布时间:2020-09-25 18:45:08 C#/.NET