【发布时间】:2017-04-24 09:48:06
【问题描述】:
我有两个班级:
在我的 .h 文件中:
class A
{
A();
private:
vector<B*> list;
void deleteObject(B* i);
}
class B
{
B();
}
在我的 .cpp 文件中:
void A::deleteObject(B* i)
{
delete i;
}
但是,Visual Studio 用红色下划线 deleteObject 并表示它与头文件中的声明不兼容
任何帮助将不胜感激
【问题讨论】:
-
“但是,这是不对的,我不知道为什么” - 我们也不是,因为你没有告诉我们你想要完成的所有这个
-
我什至没有运行程序,但是我的Visual Studio用红色下划线告诉我声明与.h文件中的声明不兼容
-
可能是因为当您定义
class A时,它不知道您的vector<B*>声明中的B是什么。 -
@Rogus 那么你建议如何解决这个问题?通过在 A 类中创建 B 类型的对象?
-
将
class B的定义移到class A之前
标签: c++ pointers memory-management