这个哪里出错了呢……

img

返回值类型和函数名贴一起了

你的类里面根本没有定义或者声明 showstudent这个函数啊


#include<iostream>
#include<string>
using namespace std;
void showstudent(string ,int );
class student
{
public:
    string m_name;
    int m_id;
};  student s1;
void showstudent(string ,int )
{
    cout<<s1.m_name<<"   "<<s1.m_id<<endl;
}
int main()
{
    
    s1.m_name="张三";
    s1.m_id=1;
   showstudent(s1.m_name,s1.m_id);
}

img

程序里的三个报错(要养成自己看简单报错的习惯)

C++ requires a type specifier for all declarations    // C++ 需要为所有的声明指定类型       => void 与showstudent()函数名之前缺少分隔符
Use of undeclared identifier 's1'                              // 使用了未声明的s1                             => showstudent() 不是student类的友元函数,也不是该类的成员函数,类内或形参也未定义s1变量
No member named 'showstudent' in student          // student类内没有showstudent这样的成员 => student类内没有定义这样的成员函数或者成员变量