我不明白转换的工作原理。
代码例如:
class Base
{
private:
int days;
public:
Base(int d):days(d){}
virtual void somefunc..
...
};
class DayInYear:public Base
{
public:
DayInYear(int diy):Base(diy){}
...
}
class Month:public Base
{
private:
int month;
public:
Mounth(int dm,int m):Base(dm),month(m){}
...
}
int main()
{
Base *arr[2] = {new DayInYear(100),new Month(20,4)};
...
}
我的问题是如何将Month类型转换为DayInYear类型?
最佳答案
编译器将无法自动为您转换类型,因为它们之间的关联性不足。
您可以在Month
类中构建一个强制转换运算符。这将有原型
operator DayInYear() const;
并返回一个
DayInYear
对象。然后,您可以编写
(DayInYear)m;
,其中m
是Month
实例。关于c++ - 在C++中转换对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31159646/