以下のコードでコンパイルエラー(C2440)が出るのですが、何が間違っているのでしょうか?
環境は、VC++6.0です。

class CBase
{
public:
CBase& operator=(int val) {}
};

class CDerived : public CBase {};

int main()
{
CDerived val = 1; // この行で、コンパイルエラー
return 0;
}

エラーメッセージは、
C2440: 'initializing' : 'const int'から'class CDerived'に変換すrことはできません。
 コンストラクタはソース型を持てません、またはコンストラクタのオーバーロード レゾリューションがあいまいです。