【发布时间】:2014-01-31 23:32:07
【问题描述】:
我遇到了这个错误的问题,添加默认构造函数并不能修复它。不使用默认构造函数编译会产生错误,使用默认构造函数编译会产生错误。我已经在网上搜索了几个小时,但一无所获。这是我的代码的一个简单示例(实际代码相当长):
//Header.h
using namespace std;
class BaseClass;
class DerivedClass;
BaseClass *MyClass = new DerivedClass;
class BaseClass
{
virtual void myFunction()
{
cout << "Base Class";
}
};
class DerivedClass : public BaseClass
{
void myFunction()
{
cout << "Derived Class";
}
};
//Main.cpp
#include <iostream>
#include "Header.h" //I believe this gives Header.h access to iostream
//I believe it cause it works
using namespace std;
int main()
{
cout << "Hello";
}
错误在 Header.h 中,Main 只是为了让 Header.h 访问 iostream。 正如我所说,我正在寻找 HOURS。并且还没有找到任何方法来修复错误: 错误 C2512:“DerivedClass”:没有合适的默认构造函数可用
【问题讨论】:
-
new DerivedClass需要DerivedClass定义。你只有一个前向声明。您还需要在Header.h中#include <iostream>。
标签: c++ class pointers derived