C ++将静态方法转换为简单方法

问题描述 投票:0回答:1

我写了这个。

class A {   };

class B : public A
{
public:
    static B Convert(const A &a) { return static_cast<const B&>(a); }
};

int main()
{
    A a;
    B b = B::Convert(a);
}

但是我想拥有这个,你知道吗?

B b = a.Convert();

谢谢您的回答! ^^

c++ methods static
1个回答
0
投票

您可以如下实现:

class A {
    // ...
    B& Convert() { return return static_cast<B&>(*this); }
}

BUT非常注意要检查这是否是一次有效的转换,否则在运行时可能会得到未定义的行为!!

© www.soinside.com 2019 - 2024. All rights reserved.