抱歉标题模糊,我似乎遗漏了一些东西。
我犹豫要不要发布这个,因为它看起来很基础,但我无法让它工作。我的 IDE 告诉我以下内容不正确。我有一个名为 IRatio 的类,我希望它可以与 long double 互换。
class
IRatio
{
protected:
long double
mValue;
public:
IRatio();
IRatio(
const IRatio& ir);
IRatio(
const long double& ld);
IRatio&
operator=(
const IRatio& ir);
IRatio&
operator=(
const long double& ld);
operator long double() const;
};
现在我知道以下几行有效:
IRatio n1(0.01f);
IRatio n2;
n2 = 0.02f;
然而,令我惊讶的是,这条线不起作用:
IRatio n3 = 0.03f;
我怎样才能让它工作?我假设在这种情况下调用了复制构造函数?或者即使是赋值运算符,我也不介意!我知道 std::string 可以做到。
std::string s = "hello!";
谢谢