std::stack
のStack拡張を作成しました。Cannoteオブジェクトを作成します。コンストラクタエラー(オブジェクト初期化用)
template<class _StackType>
class Stack
{
std::stack<_StackType> data_container;
mutable std::mutex M;
public :
Stack(const Stack& other)
{
std::lock_guard<std::mutex> lock(other.M);
this->data_container = other.data_container;
}
しかし、私はそれを初期化する場合:
私は、コードテンプレートクラスを作成しているはここにある
error: no matching function for call to `‘Stack<int>::Stack()’`
は、それはそう:
それは次のようなエラーがスローされますオペレータにはいくつかの問題があります。私は演算子のオーバーロードを作成しようとしましたが、私の試みでは失敗しました。
エラーの原因を教えてください。
?単にデフォルトのコンストラクタを指定していなかっただけです。コピーコンストラクタが定義されている場合、コンパイラは自動的にコンストラクタを生成しません。 –