【类的朋友】有几个呢?

我们都知道,面向对象编程具有封装多态继承的特性

先基于封装来看

以C++为例,对于有些数据成员、成员函数,我们为了隐私性,不得已将他设置为私有的数据,但是,如果我们想要去使用它们,就提供共有的方法去获取,这是一件既蛮烦又迫不得已的事情,那么有没有什么现成的方法可以排除掉这些“麻烦”呢?

(哈哈哈,既然俺都说了,那么就肯定是有的)

这就是我要提到的友元函数、友元类

先举个例子:

class MyClass
{
	//C++的类默认是私有的
	int val;
	void fun()
	{
		cout << "我是私有成员函数fun" << endl;
	}
};

int main()
{
	//我们现在创建对象
	MyClass myc;
	myc.fun();


	system("pause");
	return 0;
}

很明显我们访问不到类里面的私有成员,这也体现了封装的特特征

我们先来做一些“很麻烦的操作”

类的内部:

	//“很麻烦的操作”:
public:
	int getData(int data)
	{
		this->val = data;
		return val;
	}
	void test()
	{
		fun();
	}

主函数里面是可以调用的、没有报错:

那么现在我创建的有一个朋友就不一样了

假如B类想要从A类里面要数据,那么就要先在类A里面加上好朋友类B

class MyClass
{
	//C++的类默认是私有的
	int val;
	void fun()
	{
		cout << "我是私有成员函数fun" << endl;
	}
public:
	friend class friend_class;        //友元类的声明
	friend void fun2(MyClass& mc);    //友元函数的声明

};
class friend_class
{
	void fun1(MyClass& mc)
	{
		mc.fun();
		mc.val;
	}
};

void fun2(MyClass& mc)
{
	mc.fun();
	mc.val;
}

是不是很神奇! 

另外,友元的特征是:

1、单向的(就比如说,你喜欢的对象不喜欢你[狗头])

2、不传递的(你认识你的朋友,你的朋友还认识他的朋友,但是你并不认识你朋友的朋友)

3、不继承的(小明父亲的朋友并不是小明的朋友)

好了,先分享到这里,还有就是如果有错的,希望大佬可以指出来~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 高光谱朋友Torch是一种用于绘制分类图的工具。高光谱图像是一种将可见光和红外光等多个波段的数据进行收集和分析的技术。它能够提供比常规摄影图像更多的信息,帮助我们更好地理解所研究对象的特征和属性。 而Torch是一种开源机器学习库,它们结合起来可以用于对高光谱图像进行分类。研究人员可以使用Torch中的各种算法和模型来处理高光谱图像的数据,从而实现对图像中不同目标或区域进行分类和识别。 高光谱朋友Torch的分类图绘制功能使得我们能够将高光谱图像中的不同类别和目标进行可视化。通过使用Torch中的分类算法,我们可以根据高光谱图像的数据特征将其分为多个类别或进行目标识别。 使用高光谱朋友Torch绘制分类图的过程通常包括以下几个步骤:首先,我们需要收集高光谱图像的数据,这可以通过使用高光谱传感器进行实地采集或获取现有的高光谱图像数据集来完成。然后,我们将数据导入Torch中,并使用其中的分类算法进行训练和调整模型。接下来,我们可以使用训练好的模型对新的高光谱图像进行分类,并将结果绘制成分类图。 绘制的分类图可以帮助我们更好地理解高光谱图像中的不同类别和目标分布情况,为进一步的研究和应用提供参考。总之,高光谱朋友Torch是一个强大的工具,它能够帮助我们更好地分析和理解高光谱图像,并为相关研究和应用提供支持。 ### 回答2: 高光谱是一种基于光谱数据的技术,可以利用特定的光谱范围和分辨率收集物体的光谱信息。它通常用于遥感领域,通过采集大量波段的光谱数据来识别和分类地面上的不同物体或物质。 朋友torch在画分类图时,可能会利用高光谱技术来实现。首先,torch需要确定要分类的物体或物质。然后,他可以使用高光谱设备或传感器在不同波段范围内获取光谱数据。这些光谱数据反映了物体或物质对不同频率的光的反射、吸收或辐射情况。 接下来,torch可以使用统计学和机器学习算法,如支持向量机(SVM)或随机森林(Random Forest)等,对收集到的光谱数据进行处理和分析。他可以将数据分为训练集和测试集,利用训练集来训练分类模型,然后使用测试集来验证模型的准确性和效果。 在训练过程中,torch需要在光谱数据的基础上提取出一些有效的特征来区分不同的物体或物质。这些特征可以是光谱强度、吸收峰值、辐射量等。通过将这些特征与对应的物体或物质进行关联,torch可以建立起一个准确的分类模型。 最后,torch可以利用训练好的模型预测新的光谱数据,并将其分类为已经确定的物体或物质。通过绘制分类图,他可以直观地展示不同物体或物质的分布情况和相互关系,有助于进一步研究和应用。 总而言之,高光谱技术可以帮助我们通过收集和分析光谱数据来实现物体或物质的分类。朋友torch在画分类图时,可以利用高光谱技术获取光谱数据,并通过训练分类模型来对不同物体或物质进行准确的分类和展示。 ### 回答3: 高光谱是一种针对不同波长范围的光进行分析和采集数据的技术。它不仅可以获取可见光范围的数据,还可以获取近红外和红外波段的数据。高光谱技术在地球科学、环境监测、农业和医学等领域有广泛的应用。 朋友的Torch是一个功能强大的开源机器学习库,它提供了丰富的工具和接口可以帮助我们进行图像分类任务。它支持常见的分类器,如支持向量机、K最近邻和深度学习模型等。对于高光谱图像分类任务,我们可以借助Torch的强大功能进行快速准确的分析。 在应用高光谱与Torch进行图像分类任务时,首先我们需要将高光谱图像的数据进行预处理,包括去除噪声、归一化和特征提取等。接着,我们可以使用Torch提供的分类器算法对处理后的数据进行训练和预测。 画分类图是为了更直观地展示我们的分类结果。我们可以使用Torch中的可视化工具,将预测结果可视化为分类图,每个类别用不同的颜色或标记表示。分类图可以帮助我们更清楚地理解分类器对各类别的判别能力,同时也方便我们对分类结果进行可视化分析和评估。 总之,高光谱与Torch的结合可以为我们进行图像分类任务提供强大的工具和方法。通过综合应用高光谱技术和Torch的特性,我们能够更好地进行图像分类研究和实践,推动相关领域的发展和创新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值