c_cpp 在C ++中进行强制转换和向下转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 在C ++中进行强制转换和向下转换相关的知识,希望对你有一定的参考价值。
#include <iostream>
//c++ down/up casting clases example
//base struct
struct Base
{
int type;
Base* next;
Base* prev;
int getType()
{
return type;
}
};
struct IntObj: Base
{
long value;
IntObj(long val): value(val) { }
long getValue()
{
return value;
}
};
int main() {
Base* b = new IntObj(8);
std::cout << b->getType() << "\n";
//static cast needed for down casting
IntObj* i = static_cast<IntObj*>(b);
//or a reinterpret_cast
IntObj* j = reinterpret_cast<IntObj*>(b);
std::cout << j->getValue() << "\n";
}
以上是关于c_cpp 在C ++中进行强制转换和向下转换的主要内容,如果未能解决你的问题,请参考以下文章
c语言强制转换的疑问
SV强制类型转换和常数
c和c++中,对结构体进行强制类型转换!
int 与long int类型转换
在 C/C++ 中高效地在十六进制、二进制和十进制之间进行转换
C++ 子类化、继承和强制转换