タイトルがぼやけてすみません、何かが足りないようです。
とても基本的なように見えるので、私はこれを投稿するのをためらっていましたが、私はそれを機能させることができません。私のIDEは、次のことが正しくないと言っています。ロングダブルと交換したいIRatioというクラスがあります。
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!";
ありがとう