资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C++学习笔记(八)-创新互联

四.友元

创新互联建站专注于温岭企业网站建设,响应式网站设计,商城建设。温岭网站建设公司,为温岭等地区提供建站服务。全流程按需制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术

友元的目的就是让一个函数或者类 访问另一个类中私有成员

友元的关键字为  =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://cdkjz.cn/article/dheego.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220