博客
关于我
类和对象(explicit关键字,static成员,友元)
阅读量:365 次
发布时间:2019-03-04

本文共 942 字,大约阅读时间需要 3 分钟。

C++面向对象编程入门指南

1.1 构造函数与隐式类型转换

在C++中,构造函数是类对象的创建方式。以下是关于构造函数的一些关键知识点:

  • 隐式类型转换:当你写 Date d2 = 2019; 时,实际上等价于先构造一个临时对象 Date tmp(2019);,然后将这个临时对象赋值给 d2
  • 构造函数的参数个数:隐式类型转换只支持构造函数有一个参数的情况。如果构造函数有多个参数,则必须显式调用。
  • 默认参数的使用:如 Date(int year, int month = 1) 这种构造函数,虽然有两个参数,但只需要传递一个参数即可构造对象。然而,这样的设计会影响代码的可读性,建议使用 explicit 关键字修饰构造函数以避免隐式转换。

1.2 static成员的作用与使用

static 关键字用于声明类的静态成员,包括变量和函数。静态成员的特点是:

  • 静态成员变量:属于整个类,所有对象共享,必须在类外初始化。
  • 静态成员函数:不需要依赖对象的 this 指针,可以通过类名或对象名直接访问。
  • 初始化方式:静态成员变量在定义对象时不会被初始化,必须在类外定义并赋值。

1.3 友元的概念与应用

友元是允许外部函数或类访问类内成员的机制。以下是友元的关键点:

  • 友元函数:可以定义在类外,用于访问类内的私有或保护成员。
  • 友元函数的特点
    • 不支持 const 修饰。
    • 可以在类定义的任何位置声明。
    • 可以通过对象名或类名调用。
  • 友元类:类也可以声明其他类为友元类,这种关系是单向的,不能相互访问。

1.4 内部类的定义与使用

内部类是定义在另一个类内部的类,具有以下特点:

  • 访问权限:内部类可以直接访问外部类的静态成员和枚举成员,无需对象或类名。
  • 友元关系:内部类和外部类之间存在友元关系,外部类可以访问内部类的成员,但反之则不然。
  • 例子:内部类可以定义在外部类的 publicprotectedprivate 均可。

1.5 面向对象编程的核心原则

  • 封装:将相关属性和行为封装到类中,提供良好的抽象性。
  • 继承:通过继承扩展现有的类,继承了其属性和行为。
  • 多态:通过动态绑定实现不同对象对同一操作的不同处理方式。

通过理解和实践这些概念,你可以更好地掌握面向对象编程的核心知识。

转载地址:http://kpug.baihongyu.com/

你可能感兴趣的文章
NSDateFormatter的替代方法
查看>>
NSSet集合 无序的 不能重复的
查看>>
ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
查看>>
nullnullHuge Pages
查看>>
numpy 用法
查看>>
Numpy如何使用np.umprod重写range函数中i的python
查看>>
oauth2-shiro 添加 redis 实现版本
查看>>
OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
查看>>
OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
查看>>
OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
查看>>
OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
查看>>
OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
查看>>
OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
查看>>
OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
查看>>
OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
查看>>
OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
查看>>
OAuth2.0_环境介绍_授权服务和资源服务_Spring Security OAuth2.0认证授权---springcloud工作笔记138
查看>>
OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
查看>>
oauth2.0协议介绍,核心概念和角色,工作流程,概念和用途
查看>>
OAuth2:项目演示-模拟微信授权登录京东
查看>>