四.友元
创新互联建站专注于温岭企业网站建设,响应式网站设计,商城建设。温岭网站建设公司,为温岭等地区提供建站服务。全流程按需制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术
友元的目的就是让一个函数或者类 访问另一个类中私有成员
友元的关键字为 =friend=
友元的三种实现
* 全局函数做友元
* 类做友元
* 成员函数做友元
1.全局函数做友元
#include
using namespace std;
class Student
{
private:
static int age;
public:
static int id;
Student()
{
age = 0;
id = 1;
}
};
void visit(Student *student)
{
cout<< student->id<< endl;
cout<< student->age<< endl;
}
int main()
{
Student student01;
visit(&student01);
return 0;
}
#include
using namespace std;
class Student
{
friend void visit(Student* student);
private:
int age;
public:
int id;
Student()
{
age = 0;
id = 1;
}
};
void visit(Student *student)
{
cout<< student->id<< endl;
cout<< student->age<< endl;
}
int main()
{
Student student01;
visit(&student01);
return 0;
}
2.类做有元
#include
using namespace std;
class Student
{
friend class Visit;
private:
int age;
public:
int id;
Student()
{
age = 0;
id = 1;
}
};
class Visit
{
private:
Student* student;
public:
void visit()
{
cout<< student->id<< endl;
cout<< student->age<< endl;
}
Visit()
{
student = new Student;
}
};
int main()
{
Visit visit01;
visit01.visit();
return 0;
}
3.成员函数做友元
#include
using namespace std;
class Student;
class Visit
{
private:
Student* student;
public:
Visit();
void visit02();
};
class Student
{
friend void Visit::visit02();
private:
int age;
public:
int id;
Student()
{
age = 0;
id = 1;
}
};
void Visit::visit02()
{
cout<< student->id<< endl;
cout<< student->age<< endl;
}
Visit::Visit()
{
student = new Student;
}
int main()
{
Visit visit01;
visit01.visit02();
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
标题名称:C++学习笔记(八)-创新互联
链接地址:http://scgulin.cn/article/dheego.html