报错: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。
主要修正的问题包括:
添加了 头文件,因为你在代码中使用了 std::cout。
将 public: 放置在正确的位置,即在类 A 中的 public 成员函数声明之前。
将 showB 函数的类外定义放置在正确的位置,即在类 A 的定义之外。
添加了 main 函数来测试 showB 函数的输出。
#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;
}