首页 > 解决方案 > C++ 预期的嵌套名称说明符

问题描述

我收到错误消息expected nested-name-specifier before 'ClassB',但我不知道为什么。这是A类:

#include "ClassB.h"
template<typename T
class A
{
//implementation
friend class B;
};

现在这里是 B 类,它利用了 A 类

#include "ClassA.h"
class B
{
template<typename T>
void method1(typename ClassA<T>::struct varName) {}
}

但是,由于上面指定的错误,这不起作用。它与模板有关,但我不知道是什么。

标签: c++

解决方案


你的声明中有很多语法错误B::method1,所以我猜你想B::method1接受一个类型的参数A<T>

在这种情况下,您的classA.h

template<typename T
class A
{
    //implementation
    friend class B;
};

classB.h

#include "ClassA.h"
class B
{
    template<typename T>
    void method1(A<T> varName) {}
}

推荐阅读