2020-02-12

C++初识类

面向对象程序设计的主要特点是:抽象,封装,继承,多态
函数成员描述行为,数据成员描述属性
对象就是类这种数据类型中定义的变量,(类的实例化)类是自定义的类型
如果将类看成自定义类型,那么类的对象就可以看做是该类型的变量类与对象的关系就像基本数据类型与它的变量的关系,
对象是由一组属性和一组行为构成的
访问控制属性:
公有类型public:在类外只能访问类的公有成员
私有类型private:私有成员只能被本类的成员函数访问,来自类外的任何访问都是非法的
保护类型protected:
对象的声明:类名 对象名;
访问数据成员:对象名.数据成员名
调用函数成员:对象名.函数成员名
成员函数的实现: 返回值类型 类名::成员函数名(形参列表){函数体}
内联函数的声明:都和成员函数的实现有关①隐式声明:将函数体直接放在类体内②显式声明:在成员函数实现的时候加inline
析构函数的作用就是在对象被创建的时候利用特定的值构造对象,将对象初始化为一个特定的状态,析构函数的名字与类的名字相同,没有返回值,
默认构造函数:参数列表与函数体都为空,如果类中声明了构造函数(无论是否有参数)编译器不会再生成默认构造函数构造函数可以重载
复制构造函数:它的形参是本类对象的引用,它的作用是使用一个已经存在的对象去初始化同类的一个新对象。
构造函数的声明:类名(形参表)
复制构造函数的声明:类名(类名 & 对象名)
复制构造函数使用的3种情况①用类的一个对象去初始化同类的另一个对象int main(){point a(1,2);point b(a);等价于Point b=a//用对象a去初始化对象b,复制构造函数被调用point c=a;//用对象a去初始化的对象c,复制构造函数被调用}②函数的形参是类的对象,调用函数时候进行形参和实参的结合时void fun(point p){ cout<<p.getX()<<endl; }int main() {point a(1,2);fun(a);//函数的形参是point类的对象a,当调用函数时,复制构造函数被调用return 0;}③函数的返回值是类的对象,函数执行完成返回调用者时Point g() {Point a(1,2);Return a;//函数的返回值是类的对象,返回函数值时,复制构造函数被调用}int main() {Point b;b=g();return 0;}
析构函数:它的作用是用力完成对象被删除前的一些清理工作析构函数的声明:
~类名()
类的组合:是指一个类中内嵌其他类的对象作为自己的成员的情况
组合类构造函数的定义:类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表)组合类构造函数的调用顺序:①调用内前对象的构造函数,调用顺序按照内嵌对象在组合类中定义的顺序内嵌对象在构造函数初始化列表中的顺序与内嵌函数构造函数调用顺序无关②执行本类构造函数的函数体
结构体:是一种特殊的类在结构体中,对于未指定访问控制属性的成员,其访问控制属性为公 有类型在类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型
在联合体中。对于未指定访问控制属性的成员,其访问控制属性为公有类型
联合体
一个类中可以有多个构造函数,但只能有一个析构函数
在类中,默认的访问控制属性为private
拷贝构造函数是一类特殊的构造函数,它的形参是本类对象的引用使用复制构造函数的情况:A 明确表示有一个对象初始化另一个对象B 对象作为函数实参传递给函数形参的时候C 对象作为返回值的时候构造函数可以重载,析构函数不能重载

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值