精华内容
下载资源
问答
  • 没有与参数列表匹配的构造函数"ArrayOfPoints::ArrayOfPoints" 代码是一个对象的深层复制的例子 #include <iostream> #include <cassert> using namespace std; class Point { public: Point() ...
  • C++ 没有与参数列表匹配的构造函数 实例 参数类型为: (const char [12], Boy *) ``` #include #include using namespace std; class Boy:public Person{}; class Girl:public Person{ Girl(string ...
  • 项目中出现以下错误: C2664 “int CComboBox::InsertString(int,LPCTSTR)”: 无法将参数 2 从“const char [13]”转换为“LPCTSTR” ; C2440 “<function-style-cast&...没有与参数列表匹配的构造函数 "ATL:...

    项目中出现以下错误: 

    C2664    “int CComboBox::InsertString(int,LPCTSTR)”: 无法将参数 2 从“const char [13]”转换为“LPCTSTR”  ;

    C2440    “<function-style-cast>”: 无法从“CString”转换为“ATL::CA2W” ;

     没有与参数列表匹配的构造函数 "ATL::CA2WEX<t_nBufferLength>::CA2WEX [其中 t_nBufferLength=128]" 实例  ;
     

     C2440   无法从“const char [15]”转换为“ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>”   ;

     C2440    “<function-style-cast>”: 无法从“const char [24]”转换为“OPCServer” ;

    不存在从 "const char [15]" 转换到 "ATL::CStringT<wchar_t, StrTraitMFC_DLL<wchar_t, ATL::ChTraitsCRT<wchar_t>>>" 的适当构造函数 ;
     

    解决办法:将项目属性页字符集里“使用 Unicode 字符集”改为“使用多字节字符集”即可

    展开全文
  • 报错:E0289 没有与参数列表匹配的构造函数 "sales_data::sales_data" 实例 初始化一个实例对象: 类内定义的构造函数: 报错原因: 构造函数中第二个参数的类型为:unsigned&,而引用只能是引用一个对象...

    报错: E0289    没有与参数列表匹配的构造函数 "sales_data::sales_data" 实例     

    初始化一个实例对象:

    类内定义的构造函数:

    报错原因:

    构造函数中第二个参数的类型为:unsigned&,而引用只能是引用一个对象,实例化对象时,括号内第二个参数的类型是一个字面值,无法初始化一个unsigned&类型。

    修改:

    把引用符号去掉

    或者在unsigned前面加上const关键字(常量引用类型变量可用字面值类型初始化)

    展开全文
  • !... 这个怎么解决呀,网上搜的方法都不行,,谢谢大家了 ...错误(活动) E0289 没有与参数列表匹配的构造函数 "MonsterGroup::MonsterGroup" 实例 Question4 C:\Users\amola\source\repos\Question4\Question4.cpp 30
  • 今天我就把使用类时碰到关于构造函数的知识整理起来,因为构造函数实在是太多变了,我觉得很有必要写出来,希望可以帮助到你们。类为什么不能进行初始化?因为类就像结构体一样只是进行了声明,并没有实际开辟...

    C++作为C语言的继承,具有C语言的一些特性,C++主要是面向对象,因此离不开类的使用,而类的使用和C语言里面的结构体很像,不过,它比结构体更加灵活。今天我就把使用类时碰到的关于构造函数的知识整理起来,因为构造函数实在是太多变了,我觉得很有必要写出来,希望可以帮助到你们。

    类为什么不能进行初始化?

    因为类就像结构体一样只是进行了声明,并没有实际的开辟空间,所以无法对数据成员进行初始化,这时候要想初始化只能借助构造函数

    什么是构造函数?

    1.构造函数是一种特殊的成员函数,与其他的成员函数不同,不需要用户调用它,而是在建立对象时自动执行。

    2.构造函数的名字必须和类名同名,而不能任意命名,以便编译系统可以识别。

    3.构造函数不具有任何类型,不返回任何值

    4.构造函数其实不光可以执行初始化,还可以进行其他操作,但是为了让程序保持清晰的思路,一般不建议这么做。

    5.千万不要自己去调用构造函数,这是极其错误的行为

    要想使用好构造函数,这上面的几点一定要牢记,接下来我就分析一下构造函数具有哪些形式。

    ps:由于我之前的笔风都是偏严肃,但是实际上我的性格比较活泼,所以不喜欢太生硬的陈述,这次我决定小小改变一下,让文章可以看着活泼一点,不那么死板

    对象的初始化

    在C++里面,声明一个类时,并不能直接进行初始化,这时候,你要还是想初始化该怎么办呢?这就要用到构造函数了。

    构造函数进行对象的初始化可谓是得心应手,但是构造函数的形式实在是太多了,所以我决定分几种类型进行说明

    1.在构造函数内部直接进行初始化

    虽然C++的语法就是不允许类直接进行初始化,但是它又增加了一个构造函数来间接初始化,关键是这个构造函数是相当的好用啊。我刚上手几天就感觉到了,哈哈哈,初学者的福音。废话不多说,先将代码放在下面,稍后解释

    无参构造函数,最简单的一种

    82b9bd34b58d23e27dcd4b136f6a1c74.png

    上面这种事最简单的,你可以把它这样认为,构造函数是会自动生成的,但是这一步你并不能看到,而你显式地把它写出来,是为了方便理解,因为C++编译器会做很多我们看不到的内部操作,这样做事为了新手更好的理解

    580b2fcd3f1a4aab236f7a396a0c6346.png

    上面应该很好理解吧,毕竟我也是个初学者,但是还是很容易看懂呢。
    抓住一个点,自动调用,所以这种类型的构造函数就是在定义一个类之后,将类里面的对象直接赋初值

    再来接着看下面这种

    8c630d439536490043b7746d1f17fcc3.png

    这是在类外定义的无参构造函数,这点和在类外定义成员函数是类似的,都需要在类体中先进行声明。类外定义的无参构造函数,它的运作机制大概是下面这样的

    1.在定义对象时,就已经将实参给出

    2.在建立对象时,编译器要做的就是把实参的值传递给构造函数相应的形参然后把他们直接作为数据成员的初值

    记住,这里的初始化相当于是主函数中完成的,只是将实参传了过去。

    构造函数的参数列表

    如上所述,构造函数可以通过实参传递给构造函数的形参,从而完成初始化,其实,他还可以将初始化变成多种形式

    64f654ac8b25a35c9708ce2d696b98cc.png

    上面的代码,就是利用了构造函数参数列表进行的初始化。box1传递了一个实参,因此,其余的两个参数都需要直接依靠构造函数给出的形参进行初始化,而其余的也分别给出了两个和三个。

    但是你要知道的是,传递给构造函数的参数必须类型是准确的,否则它会因为无法识别类型而报错。

    总结:构造函数的形式真的可以说是千变万化的,但是我们只要熟悉了这几种常见的类型,那就可以触类旁通,掌握这个知识点。

    最后,如果你想学C/C++可以私信小编“01”获取素材资料以及开发工具和听课权限哦!

    展开全文
  • 错误(活动) E0289 没有与参数列表匹配的构造函数 “deepCopy::deepCopy” 实例 deepCopyDemo    class deepCopy { public:  // deepCopy(int deepNo1, char *deepStr1) deepCopy(int deepNo1, const char *...
  • 2 构造函数可以重载构造函数通过参数差别化可以形成重载,创建对象时通过构造函数实参类型选择匹配,表示不同对象创建方式。3 缺省构造函数 (无参构造函数)1)如果一个类没有定义构造函数,系统 (编译器) 会...

    构造函数和初始化表

    1 构造函数

    当类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作,因此构造函数的作用是初始化对象的数据成员。

    2 构造函数可以重载

    构造函数通过参数表的差别化可以形成重载,创建对象时通过构造函数实参的类型选择匹配,表示不同的对象创建方式。

    3 缺省构造函数 (无参构造函数)

    1)如果一个类没有定义构造函数,系统 (编译器) 会提供一个缺省的构造函数 (无参构造函数),使成员变量获得定义(分配内存)。

    2)对于基本类型的成员变量不做初始化。

    3)对类 类型的成员变量,用相应类型的无参构造函数初始化。

    class A{ public: A (void) { num = 0; } int num;};class B{ public: A a; int i;};int main(){ B b; cout << b.i << endl; //不确定值 cout << b.a.num << endl; //0} 

    4)如果一个类定义了构造函数,无论是否有参数,系统都不会再提供缺省(无参)构造函数。

    4 类型转换构造函数(单参构造函数)

    class A{ public: A(int i = 0){ //类型转换构造函数 num = i; } int num;};int main(void){ A a; a = 100;//a = A(100)}

    使用 explicit 关键字修饰类型转换构造函数,可以强制这种转换必须显示的进行,禁止隐式类型转换。

    class A{ public: explicit A(int i = 0){//类型转换构造函数 num = i; } int num;};int main(void){ A a; a = 100; // error,不能在做隐式转换 a = A(100); // 必须显示转换}

    5 拷贝构造函数

    1)用一个已经存在对象构造同类型的副本对象,会调用该类的拷贝构造函数。

    类名 (const 类名& that) {...}

    class A{ public: A(const A& that){ num = that.num; } int num;}; A a1;A a2 = a1; // 等价 ==> A a2(a1),调用拷贝构造函数

    2)缺省拷贝构造函数

    如果一个类没有定义拷贝构造函数,那么编译器会为其提供一个缺省的拷贝构造函数

    a)对基本类型成员变量,按字节复制。

    b)对类 类型的成员量,调用相应类型的拷贝构造函数

    注:一般不需要自己定义拷贝构造函数,因为缺省拷贝构造已经很好用了。

    3)拷贝构造函数调用的时机

    a. 用已经存在对象作为同类型对象的构造实参

    b. 以对象的形式向函数传递参数

    class A{...};void func(A a){..};int main(void){ A a; func(a);}

    c.从函数中返回对象

    A foo(A a){ return a;}

    4)系统提供构造函数时机

    ea6a9d9f4e07ac13863eebbea09231f8.png

    只要自己编译构造函数,系统就不会提供默认构造函数;自己编写拷贝函数,系统不会提供默认拷贝函数。

    6 初始化表

    1)指明类中成员变量初始化方式,语法格式:

    class 类名{

    类名 (形参表) : 成员变量 1(参数 1),成员变量 2(参数 2).. {}

    };

    class A{ /*A(int a,int b){ m_a = a; m_b = b; }*/ A(int a, int b):m_a(a), m_b(b){} A(void):m_a(0),m_b(0){} int m_a; int m_b;};

    2)必须显示使用初始化表的地方

    a. 如果有类 类型的成员变量,而该类又没有无参构造函数,则必须通过初始化表初始化该成员变量(成员子对象)。

    b. 类中包含"const"或"引用&"成员变量,必须在初始化表中显示的初始化。

    c. 成员变量初始化顺序由声明顺序决定,而与初始化表的顺序无关;

    展开全文
  • 我们在一个类中写了一个构造函数,写完之后创建一个对象时候会发现报错!!! class Son { public: Son() { age = 0; name[0] = '\0'; } Son(int age, char* name) { this->age = age; strcpy...
  • 我写的构造函数是这样的: <code>Student() { string a = "0"; name = a; courseNames[3] = {0}; grades[3] = {0}; }; Student( int id1 , const string name1[],const ...
  • 在学c++多线程时候报了这个错。。不太会c++ 望求助,请问该如何修改呢望大神教一下 这个是CPP #include "stdafx.h" #include #include std::thread::id main_thread_id = std::this_thread::get_id()...
  • 严重性 代码 说明 项目 文件 行 禁止...错误(活动) E0289 没有与参数列表匹配的构造函数 "deepCopy::deepCopy" 实例 deepCopyDemo class deepCopy { public: // deepCopy(int deepNo1, char *deepStr1) ...
  • 在 Julia 中,类型对象也同时充当构造函数的角色:可以用类名加参数元组方式像函数调用一样来创建新实例。对很多类型来说,通过给所有成员赋值来创建新对象这种方式就足以用于产生新实例了。然而,在某些情形下...
  • 用vs2017完全按照CFileDialog的构造函数来写相关参数,但还是报错,后来才知道是字符集设置错误导致不能识别TRUE变量。 解决方法:打开解决方案-&gt;右键选择属性-&gt;配置属性里面的常规里,将字符集设置成...
  • QtCreator 的实例...//没有与参数列表匹配的构造函数实例 //错误 7 error C2440: “初始化”: 无法从“initializer-list”转换为“QStringList''..... //参考https://blog.csdn.net/a312024054/article/det...
  • 我对这个“奇技淫巧”描述颇感兴趣,因为按照批判者说法,C++一些特性恰巧可以让一些炫耀技术同学有了炫耀资本——毕竟路人皆知东西却没什么好炫耀。这又让我想起了《孔乙己》中关于“回”字有几种...
  • val countingList = List(1,2,3,42)使用类似于案例类构造函数的模式从此列表中提取任何元素:val mustHaveThree = countingList match { case List(_, _, 3, somethingElse) => s“ 有一个包含3作为第三个元素...
  • 可变参数模板可变参数模板(variadic template)为一个接受可变数目参数的模板函数或模板类。参数包(parameter packet)可变数目的参数。模板参数包(template parameter packet)表示零个或多个模板参数函数参数包...
  • CFileDialog派生类在编译过程出现“error 没有与参数列表匹配的构造函数实例参数类型为(int,constchar[4],constchar[6],int,constchar[36],int) .的问题 解决办法 右击项目---属性----配置属性-----常规-----字符...
  • 虽然我很喜欢列表推导,但我发现一旦新Pythonistas开始真正欣赏、理解之后,他们往往会在很多地方使用它。 列表推导虽然很有用,但很容易被滥用!本文旨在讨论推导不是工作最佳工具情况,至少在可读性方面。 ...
  • 把string多个改成多个 { }写就行了…(版本:.
  • 构造函数代码中char* pName改为const char* pName即可。 背景:构造函数等成员函数全部都写了,仍出现这个报错 解决: 将构造函数代码中char* pName改为const char* pName即可。 理解:虽然error所指为20,...
  • 按照计算机图形学课本敲代码 但是书上代码不完整且有错误 修改后还有这个错误 贴图![图片说明](https://img-ask.csdn.net/upload/201609/24/1474679547_938385.png) 自己建了cmessagedig类 不知道该怎么解决这个...
  • 子类不会继承父类构造函数”和“析构函数”实例化子类对象时候,调用顺序:构造函数:先调用父类,再调用子类析构函数:与构造函数调用顺序正好相反(先调用子类,再调用父类)--------------------------...
  • ![图片说明](https://img-ask.csdn.net/upload/202006/14/1592145333_950057.png)

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 180
精华内容 72
热门标签
关键字:

没有与参数列表匹配的构造函数