錯誤C2512 的常見原因是當您定義接受自變數的類別或結構建構函式,然後嘗試宣告類別或結構實例,而不需要任何自變數。 例如, struct B 下面會宣告需要自變數的建構函式,但不宣告 char * 不採用自變數的建構函式。 在中 main,會宣告 B 的實例,但未提供自變數。 編譯程式會產生 C2512,因為它找不到 B 的預設...
这可能包括添加默认构造函数、修改对象创建方式或调整类的设计。 总之,解决error c2512错误的关键在于确保在需要默认构造ccolorlistctrl对象时,该类有一个可用的默认构造函数。如果类设计不允许默认构造,则需要确保在创建对象时提供了所有必要的参数。
View Code 注释掉Weapon的void构造函数会提示error C2512: “Weapon”: 没有合适的默认构造函数可用。 1、由于你在Weapon中定义了其他构造函数,那么,编译器不会为你创建默认构造函数;然而,你在Actor的构造函数中没有调用Weapon的构造函数,那么,编译器会调用Weapon的默认构造函数,然而,却没有定义,所以,产生了“error...
错误C2512 的常见原因是,定义采用参数的类或结构构造函数,然后尝试声明一个不带任何参数的类或结构的实例。 例如,下面的struct B声明一个需要char *参数的构造函数,但不是一个不采用任何参数的构造函数。 在main中,声明 B 的一个实例,但没有提供参数。 编译器生成 C2512 是因为它找不到 B 的默认构造函数。
编译器错误 C2512 “identifier”:没有合适的默认构造函数可用 “默认构造函数”(不需要参数的构造函数)不适用于指定的类、结构或联合。 只有在未提供用户定义的构造函数的情况下,编译器才会提供默认构造函数。 如果提供一个采用非 void 参数的构造函数,并且希望允许创建不带参数的类(例如,作为数组的元素),还必须...
// C2512b.cpp // compile with: /c struct S { struct X; void f() { X *x = new X(); // C2512 X not defined yet } }; struct S::X {}; struct T { struct X; void f(); }; struct T::X {}; void T::f() { ...
1> main.cpp : error C2512: “HelloWorld”: 没有合适的默认构造函数可用1>1>生成失败。 修改后正确的程序 修改helloworld.h #ifndef__HELLOWORLD_H_#define__HELLOWORLD_H_classHelloWorld{public:HelloWorld(inta):a(a){}HelloWorld(){}voidsay(){ ...
在初学C++的时候,对于一个对象来说,如果我们没有去定义其默认构造函数,那么编译器就会为我们自动生成...
Player.h #pragma once #include <string> class Player { public: Player(); virtual ~Player(); virtual void Attack() = 0; virtual void Defend() = 0; protected: std::string m_name; };Player.c…
error C2512: “HelloWorld”: 没有合适的默认构造函数可用 2016-06-20 01:29 − error C2512: “HelloWorld”: 没有合适的默认构造函数可用 c++ newbie error C2512: no appropriate default constructor available 注:我使用VS2010时,遇到的问题。 解决办法 在类中添加一个... AoboSir 0 1653 ...