`
holoblog
  • 浏览: 1255916 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19411
文章分类
社区版块
存档分类
最新评论

error C2558:no copy constructor available or copy constructor is declared 'explicit'

 
阅读更多

Error3error C2558: class 'HuffmanCode' : no copy constructor available or copy constructor is declared 'explicit'd:/microsoft visual studio 8/vc/include/utility37

今天发现了这个错误,发现报错的地方是

pair(const _Ty1& _Val1, const _Ty2& _Val2)
: first(_Val1), second(_Val2)
{// construct from specified values
}

但这里是std_utility里,这里根本不可能是编译器的错误。

那哪里写错了?根据提示估计是'HuffmanCode' 的拷贝构造函数错误。然后检查了下:

explicit HuffmanCode(HuffmanCode & codes):b(codes.b)

感觉没有错呀。然后试着去掉了explicit 关键字,发现..还是报相同的错误。

然后仔细看了下pair(const _Ty1& _Val1, const _Ty2& _Val2),然后 second(_Val2),这里我使用了<map>然后将HuffmanCode作为value而不是作为key。这里看出在成员列表中 second(_Val2)是cosnt的。

这就使得copy construct函数也必须使用const的参数..

所以更改了下
explicit HuffmanCode(const HuffmanCode & codes):b(codes.b)

现在终于渐渐的知道为啥拷贝构造函数其参数是const的了。
修改完毕后在其他函数里写了这样一句代码

HuffmanCode hc = Encode(....);

这里Encode的返回值是Huffman.结果系统编译时提示相同的错误。

explicit HuffmanCode(const HuffmanCode & codes):b(codes.b)是这里的错误。

因为写了explicit,所以返回值必须是const Huffman&才可以.所以还是把explicit关键字去掉了。

分享到:
评论

相关推荐

    JS:typeof instanceof constructor prototype区别

    alert(c.constructor === Array)`将返回`true`,表明`c`是由`Array`构造函数创建的。 然而,这种方法在处理类继承时可能会出现问题。当一个子类继承自父类时,子类实例的`constructor`属性默认会指向父类的构造...

    Copy Constructors and Assignment Operators终极解释

    在C++编程语言中,复制构造函数(Copy Constructor)和赋值运算符(Assignment Operator)是两个非常关键的概念,特别是在处理对象的拷贝和赋值时。它们默认由编译器提供,但通常需要根据具体需求进行自定义,以确保正确...

    boa-constructor入门介绍

    boa-constructor是一款基于Python语言,使用wxPython库构建图形用户界面(GUI)的应用程序开发工具。它为非专业程序员提供了一种直观、易用的可视化界面来设计和编写GUI程序,降低了开发复杂度,尤其适合初学者入门...

    ubuntu:python调用c生成so文件出错

    bfs.cpp:11:15: error: expected constructor, destructor, or type conversion before ‘(’ token  __declspec(dllexport) windows到linux的转换: windows下: #include #include #include #include using ...

    面向对象程序设计英文教学课件:08 Copy Control.ppt

    Copy Control 涉及到对象复制和赋值操作时的行为控制,包括拷贝构造函数(Copy Constructor)、赋值运算符(Assignment Operator)以及移动语义(Move Semantics)。这个英文教学课件"08 Copy Control.ppt"主要讲解...

    is-error-constructor:检查值是否为错误构造函数

    $ npm install is-error-constructor 用法 import isErrorConstructor from 'is-error-constructor' ; isErrorConstructor ( Error ) ; //=&gt; true isErrorConstructor ( RangeError ) ; //=&gt; true function ...

    wordpress主题WordPress主题:Constructor

    根据提供的文件信息,我们可以深入探讨有关“WordPress主题:Constructor”的相关知识点。首先,从标题可以看出,这是一款专门针对WordPress平台的主题。WordPress是一个非常流行的开源内容管理系统(CMS),它支持...

    boa-constructor-0.6.1. for python2.5

    "boa-constructor-0.6.1 for Python2.5" 是一个专为Python 2.5版本设计的集成开发环境(IDE),主要用于图形化构建应用程序的用户界面(UI)。Boa Constructor是一款开源软件,它提供了对Python程序员来说非常友好的...

    Unity - Behavior Designer Ver 1.5.7

    CreateInstanceFromType is not allowed to be called from a ScriptableObject constructor (or instance field initializer), call it in OnEnable instead. Called from ScriptableObject '...

    TensorFlow加载模型时出错的解决方式

    \windows\tensorflow\core\framework\op_kernel.cc:993] Not found: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for params_cifar.ckpt 在Windows下要把目录写对才可以。 ...

    JavaScript中constructor()方法的使用简介

    我们可以重写Error对象的constructor属性来创建特定的错误类型。 重写constructor属性时需要特别小心,因为它可能会影响到对象的原型链和继承关系。如果为对象手动设置一个错误的constructor属性,可能会导致对象...

    java反射之Constructor

    Java 反射之 Constructor Java 反射机制中的 Constructor 类提供了关于类的单个构造方法的信息,包括对它的访问权限、Class 获取构造函数的方式等。下面将详细讲解 Constructor 类的概述、获取构造函数的方式、构造...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    (One exception is if an argument Foo or const Foo& has a non-explicit, one-argument constructor, in which case we need the full definition to support automatic type conversion.) We can declare ...

    Android代码-Watchface-Constructor

    This is simple watchface constructor demo. It offers customization of the following features: Background colors and images Watch hands Placement of watch hands Ambient mode How it works? Pull ...

    eslint-plugin-no-constructor-bind:首选类箭头函数在构造函数中进行绑定

    eslint-plugin-no-constructor-bind 优先使用类属性,而不要使用类的构造函数方法中的等效设置步骤。 // Bad: class User { constructor ( ) { this . greet = this . greet . bind ( this ) } greet ( ) { ...

    boa.rar_Boa Construct_boa_boa constructor_boa constructor chm_bo

    在标题"boa.rar_Boa_Construct_boa_boa constructor_boa constructor chm_bo"中,我们可以看到关键词"Boa Constructor"和"boa constructor chm",这表明压缩包可能包含了Boa Constructor的安装文件或文档,如CHM...

    JavaScript的constructor属性[文].pdf

    JavaScript constructor 属性在类型检查中的应用 在 JavaScript 中,constructor 属性是一种非常有用的工具,可以帮助我们检查变量的类型。Constructor 属性可以帮助我们解决 typeof 函数无法解决的问题,即无法...

    人形机器人制造师:Mech Constructor Humanoid Robots 2.0

    这是一个包含 70 多个模块预制件的 Unity 资源包,用于构建多样化的战斗机甲。 功能或主要特征: 模块化设计,易于组装。 多边形数量从 2.3k 到 4.2k。 提供手绘 4k 漫反射图集和 PBR 贴图。 所有机甲具备仿人形化身...

    javascript new后的constructor属性.docx

    ### JavaScript中的`new`操作与`constructor`属性详解 #### 一、`new`操作符的理解 在JavaScript中,`new`操作符被用于创建一个由构造函数定义的新实例对象。当使用`new`关键字调用一个构造函数时,会执行以下步骤...

Global site tag (gtag.js) - Google Analytics