嵌入式c++学习全局 友元

Posted 文某9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式c++学习全局 友元相关的知识,希望对你有一定的参考价值。

## 友元语法和使用,具体全在代码注释里边

//可以通过一个类创建多个类
class Building;
/*
创建了一个good类型
写了两个自定义函数,一个构造函数
写了一个指针,这就是这个类的全部理解
*/
class GoodGay//我的朋友

public:
	void visit();//访问公共和私有属性
	void visit2();//不能访问
	GoodGay();
	Building * building;//类指针
;

/*
创建了一个buil类型
写了一个good类下边的visit函数为友元
在公共权限下写了两个字符串类型的变量a,b
写了一个building的无参构造
写了一个保护权限下的字符串c
这就是这个类的全部东西
*/
class Building//我的家

	friend void GoodGay::visit();
public:
	string a,b;
    Building();
private:
	string c;
;

//building构造函数类外实现类的属性赋初值
Building::Building()

a="张三";
b="李四";
c="王五";

//good构造函数 里边的地址在堆区重新申请了一块building类的数据,无论类在哪,只要创建对象都会调用类的构造
GoodGay::GoodGay()

	building=new Building;

;
//good下的visit类外实现,成功访问了buil类的共有和私有的数据,因为在buid里定义了visit做为友元
void GoodGay::visit()


	cout<<"正在访问公共类型"<<building->a<<endl;
	cout<<"正在访问私有类型"<<building->c<<endl;

;


//good下的visit类外实现,未成功访问buil类的共有和私有的数据,因为在buid里定义了visit做为友元
void GoodGay::visit2()

	cout<<"正在访问公共类型"<<building->a<<endl;
	//cout<<"正在访问私有类型"<<building->c<<endl;

;


/*
创建了一个good类对象
对象会调用类的构造函数即GoodGay::GoodGay(),在good构造函数里边new了buil类,所以也会调用这个类的构造函数
打印输出visit访问的私有公有的数据
*/
int main()

	GoodGay gg;
	gg.visit();
	system("pause");
	return 0;


以上是关于嵌入式c++学习全局 友元的主要内容,如果未能解决你的问题,请参考以下文章

C++友元与运算符重载结合友元

C++笔记--面向对象(OOP)编程基础--操作符重载及友元

4 C++基础4 类 const函数 转全局函数 返回*this 数组类。友元 函数 类 操作符重载

C++学习摘要之六:友元函数与友元类

C++之有元

C++学习:4拷贝友元