我已经为std::Stack
创建了一个堆栈扩展。
我创建了一个模板类,其代码如下:
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;
}
但当我初始化它时:
Stack<int> myStack;
它抛出以下错误:
error: no matching function for call to `‘Stack<int>::Stack()’`
操作员似乎有一些问题。我确实尝试创建运算符重载,但尝试失败。
错误的原因是什么?
Stack类缺少默认构造函数。
您没有为Stack
指定默认构造函数,因此无法创建变量myStack
。
通常,默认构造函数是隐式的,但在您的情况下,因为您指定了复制构造函数,所以会将其删除。
要么自己实现它,要么显式地默认它:
Stack() = default; // Default implementation of default constructor
映射对构造函数没有限制或要求 (__init__ )类的方法。您可以自由地为您想要的函数要求任何参数,为ORM未知的实例分配属性,并且通常在编写Python类的构造函数时做您通常会做的任何其他事情。 sqlAlchemy ORM不调用 __init__ 从数据库行重新创建对象时。ORM的过程有点类似于Python标准库的 pickle 模块,调用低级 __new__ 方法,然后在实例上悄悄地恢复属
生成类对象时,其成员可以用类的构造函数初始化。构造函数是与类同名的成员函数。程序员提供的构造函数在每次生成类对象(实例化)时自动调用。构造函数可以重载.提供初始化类对象的不同方法。数据成员应在类的构造函数中初始化或在生成对象之后设置其数值。 常见编程错误 6.7 类的数据成员只能在类定义中初始化。 常见编程错误 6.8 试图声明构造函数的返回类型和返回植是个语法错误。 编程技巧 6.5 适当时候(
下面的代码不断抛出以下错误:Java Error Terminal Screen Snapshot 我试过很多在线修复,但似乎都不起作用。下面是我的代码,我已经注释了错误位置(发生在驱动程序主函数中) 注意:如果我将public static void main(String args[])更改为public void main(String args[]),那么代码可以正常编译,但是当我运行它时
我正在使用tomee服务器运行我的javaEE应用程序。我写了一个过滤器,它注入一个对象。但是,该对象似乎没有被实例化: 以下是我的代码: Filter.java Faculty.java 我得到了一个NPE。以下是堆栈跟踪: 下面是正在使用的工件的版本: 我已经尝试在META-INF和WEB-INF中包含beans.xml,但我仍然看到NPE.Can有人让我知道我做错了什么?
我正在从一个教程中重构下面的代码。当我< s >运行编译它时,我得到以下错误: Vierbeiner类中的构造函数Vierbeiner不能应用于给定类型;必需:java.lang.找到字符串:无参数原因:实际参数列表和正式参数列表长度不同 我的理解是,发生这个错误是因为父类Vierbeiner有一个需要字符串参数的构造函数,而没有一个不需要参数的构造函数。我不明白的是,为什么我在没有创建Hund类
我在创建对象和参数化构造函数时遇到以下错误。 Main.java: 6:错误:构造函数Cipher类中的Cipher不能应用于给定类型 必需:无参数 找到:int 原因:实际参数列表和正式参数列表的长度不同 这是我的文件的样子