//问题见注释
#include
using namespace std;
class Teacher; //这里编译不成功,提示incomplete type 'Teacher' named in nested name specifier
class Student
{
friend void printStudent(Student grade);
friend void Teacher::printStudentInTeacher(Student &s);
public:
private:
int grade;
};
class Teacher
{
public:
void printStudentInTeacher(Student &s);
};
void printStudent(Student s)
{
cout
cout
}
void Teacher::printStudentInTeacher(Student &s)
{
cout
cout
}
C++ 一个类的成员函数作为另一个类的友元函数,为什么错了?
答案:3 悬赏:30 手机版
解决时间 2021-02-10 23:26
- 提问者网友:溺爱和你
- 2021-02-10 19:56
最佳答案
- 五星知识达人网友:逃夭
- 2021-02-10 20:21
worker(){}默认构造函数,其作用是把类的私有成员变量初始化为string类的默认值。
也就是空字符串。
~worker(){}是析构函数,其作用是在超出对象的作用域后,将对象所占的内存给释放掉。
避免物理内存被用尽
也就是空字符串。
~worker(){}是析构函数,其作用是在超出对象的作用域后,将对象所占的内存给释放掉。
避免物理内存被用尽
全部回答
- 1楼网友:骨子里都是戏
- 2021-02-10 22:19
#include
using namespace std;
class Student;
class Teacher
{
public:
void printStudentInTeacher(Student &s);
};
class Student
{
//public:
friend void printStudent(Student grade);
friend void Teacher::printStudentInTeacher(Student &s);
private:
int grade;
};
void printStudent(Student s)
{
coutcout }
void Teacher::printStudentInTeacher(Student &s)
{
cout cout }
顺序应该是这样子的
- 2楼网友:等灯
- 2021-02-10 21:49
成员函数是可以设定为其他类的友元的,代码改成这样就行了;
class a;
class b
{
public:
void show(a & t);
};
class a {
int i;
public:
friend void b::show(a & t);
};
void b::show(a &t)
{
cout << t.i << endl;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯