gpt4 book ai didi

c++ - 错误 C2079 : 'Toto::a' uses undefined class 'foo'

转载 作者:行者123 更新时间:2023-11-30 02:35:42 25 4
gpt4 key购买 nike

<分区>

我在编译以下代码时遇到错误 C2079,我不明白为什么。 foo 类稍后声明(前向声明)。

class foo;

//template <typename dataType>
class Toto
{
foo a; //C2079
};

class foo
{
public:
int x;
};

那个问题真正奇怪的是,如果我取消注释“模板行”(在类 Toto 声明之前),错误就会消失。我可以将其用作解决方法,但我不明白这里发生了什么。

根据收到的第一个反馈,我尝试了以下代码:

class foo;

//template <typename dataType>
class Toto
{
foo *a; // solve C2079

void otherFunc()
{
a->myFunc(); // C2027
}
};

class foo
{
public:
int x;
void myFunc()
{
};
};

所以用指针“foo * a”替换“foo a”解决了编译错误。但是添加一个函数及其实现并调用“a->myFunc()”现在会产生“错误 C2027:使用未定义类型‘foo’”。是类似的问题吗?再次"template"解决它。是的,我使用 MSVC 编译器。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com