c++ - 获取参数的子类
问题描述
我有一个将父类作为参数的方法。我需要在编译时知道该参数的子类是什么。
class A{
...
};
class B: public A{
...
};
class C: public A{
...
};
void foo(A a){
//is a specialized in B or C?
}
C c;
foo(c); //here it is C
解决方案
您的期望背后的概念是一种编译时多态性......
您可以通过函数重载来实现它。
编写两个不同的函数并没有错(正如评论中的 DimChtz 所说)......一个带有 B 类型的参数,另一个带有 C 类型的参数。
推荐阅读
- android - java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/iid/FirebaseInstanceId;反应原生应用
- ssms - 安装新 SSD 后无法连接到 SQL Server Management Studio 中的服务器
- reactjs - React Native this.setState() 仅在再次与组件交互后重新渲染
- c# - 当从 c# 作为进程运行时,TeraTerm 宏会立即关闭
- outlook - 如何从 Outlook 服务器获取每个人的日历/会议信息?
- swiftui - 从基于 SwiftUI 文档的应用程序中获取窗口标题数据
- azure - 从管道内调用 AZ 管道 API
- css - 像素大小与屏幕大小有关吗?
- angular - 带有自动完成/建议的角文本区域
- python - 如何用monkeypatch替换常量