类和对象

1.面向过程和面向对象的认识
c语言是面向过程的,关注的重点是过程,分析解决问题的步骤,逐步解决问题。
c++面向对象的,关注的是对象,将一件事情拆分开,靠对象之间的交互关系完成

2.类的引入

结构体与类
c语言中结构体只可以定义变量,c++中结构体可以定义变量与函数。
对于结构体的定义,c++更多的使用class代替。

类的定义
class为类的关键字, class后面为类名,{}为类的主体,类定义结束时需要;
类中的元素称为类的成员,类中的数据称为类的属性或者成员变量,
类中的函数称为类的方法或成员函数。

定义一个·类
class TestCode
{
public:
void print()//成员函数为公有
{
cout << _name << _sex << _age << endl;
}
private://成员变量为私有
char* _name;
char* _sex;
int _age;
};

4.类的访问限定限定符以及封装
4.1访问限定符
c++实现封装的方式,将类和对象的属性的方法结合起来,让对象更加完善,通过访问权限限定符将接口提供给外部用户。

               :public
访问限定符 : protected
private
注:访问限定符只在编译时有用。

c++中class与struct 的区别
C++中可以使用任何一种定义类,struct定义的类默认公有,class默认为私有。
4.2 封装
面向对象的三大特性:封装,继承,多态
封装:将数据与操作数据的方法结合(通过定义类·实现),只是通过接口来实现功能,

5.类的作用域

类里面的成员都在类的作用域中,在类外定义成员,需要使用作用域解析符::

6。类的实例化:
使用类创建对象的过程,称为类的实例化
定义类并没有分配内存,定义出对象才占用物理空间。

7.类的大小:
类的大小是类里面成员变量之和,注意内存对齐,空类的大小(1个字节)

8.this指针
c++给每一个非静态成员函数,增加了一个隐藏的指针参数,该指针指向当前对象,在函数体中完成成员变量的操作,都是通过该指针

指针类型 类的类型* const
只可以在成员函数内部使用
this指针实际上是成员函数的一个参数,调用成员函数的时候,将对象的地址空间传给this指针的形参,对象中并不存储该指针。
this指针为编译器自动传递,不需要自己定义,都是座位成员函数的第一个形参

类的6个默认成员函数

  1. 构造函数

1.1构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象由编译器自动调用,在对象生命周期只能调用一次。

1.2构造函数是一种特殊的成员函数,其主要任务为初始化对象。
特征:函数名与类名相同
无返回值
对象实例化编译器自动调用对应的构造函数
构造函数可以重载.

1.3如果类中无定义的构造函数,编译器会自动生成一个默认的构造函数,用户自定义后则不再生成

1.4无参的构造函数和全缺省的构造函数,都叫做默认的构造函数,且默认构造函数只有一个

析构函数
在对象销毁时会自动调用析构函数,完成资源的清理工作

1.1特征:
析构函数是特殊的成员函数,
1.析构函数名是在类名前面加上字符~
2.无参数无返回值。
3.一个类只有一个析构函数,若未显示定义,系统会自定义默认的析构函数
4.对象生命周期结束时,c++编译系统自动调用析构函数

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值