关于#c++#的问题:报错:test4.h:16:3: error: expected unqualified-id before ‘public’ public:代码

报错:test4.h:16:3: error: expected unqualified-id before ‘public’
public:
代码

```c++

#include
class B;
class A{
public:
void showB(B& m);
};
class B {
int b;
public:
B() { b = 0; }
// 声明类A中的showB函数为自己的友元函数。
friend void A::showB(B& m);

};
//类外定义showB函数,使得结果输出B::b = 0。
public:
void showB(B& m){
std::cout<<"B::b="<<m.b;
}

```题目让//声明类A中的showB函数为自己的友元函数。
//类外定义showB函数,使得结果输出B::b = 0。

基于Monster 组和GPT的调写:

主要修正的问题包括:

  • 添加了 头文件,因为你在代码中使用了 std::cout。

  • 将 public: 放置在正确的位置,即在类 A 中的 public 成员函数声明之前。

  • 将 showB 函数的类外定义放置在正确的位置,即在类 A 的定义之外。

  • 添加了 main 函数来测试 showB 函数的输出。

img


#include <iostream>

class B;

class A {
public:
    void showB(B& m);
};

class B {
    int b;
public:
    B() { b = 0; }

    // 声明类A中的showB函数为自己的友元函数。
    friend void A::showB(B& m);
};

// 类外定义showB函数,使得结果输出B::b = 0。
void A::showB(B& m) {
    std::cout << "B::b=" << m.b;
}

int main() {
    A a;
    B b;
    a.showB(b);
    return 0;
}