単一の.hファイルに次のクラスがあります。
class MyClass
{
protected:
MyClass();
~MyClass();
private:
MyClass(const MyClass&);
MyClass& operator=(const MyClass&);
};
inline MyClass::MyClass()
{
}
inline MyClass::~MyClass()
{
}
私が混乱しているように見えるのは、MyClass(const MyClass&)コピーコンストラクターとMyClass&operator =(const MyClass&)代入演算子のオーバーロードが実装されているコードがないことです。クラスには定義がありますが、他には何もありません。
私が分析しているコードでこれを見たことがあり、完全にコンパイルされます。私はC++を初めて使用し、これまでに見たすべての例で、以下のクラスと実装の両方、または別の.cppファイルで定義を見つけました。
では、なぜこのコードがコンパイルされるのか、そしてなぜ関数の宣言だけを含め、その実装は含めないのか、誰でも説明できますか?
ありがとうございました!!