ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++学习面向对象(1)——类的基本概念知识

2022-09-10 15:02:02  阅读:275  来源: 互联网

标签:Box ... 初始化 double C++ 面向对象 构造函数 基本概念 指针


C#和C++的部分面向对象方式类似,只记录不同点。

定义类与关键字:

下面是C++类的定义方式与C++关键字public和private的表达方式:

class Box
{
private:
    // 私有成员
public:
    // 公共成员
};

函数:

在类内定义的函数被隐式声明为内联函数

构造函数:

如果没有给指针类型和基本类型成员赋值(或者初始化),他们将会包含垃圾值

如果已经定义了一个构造函数,无论怎样,编译器将不会再去构造一个默认无参

这样做能初始化一个对象:

Box a; // a被初始化了

可以在类内用Default创建一个默认无参的构造函数:

Box() = default;

在类内用default创建的构造函数,在源文件不能有定义

所有参数都有默认值的构造函数仍然算作默认构造函数

可以用初始化列表来初始化成员变量:

Box::Box(double lv, double wv...) : length = lv, width = wv...
{
  //code-in }

构造函数只有一个参数(或者只有第一个参数没有默认值的)是有问题的,编译器可以用这种构造函数吧参数类型转换为类类型

可以使用explicit关键字限定:

explicit Cube(double aside);

委托构造函数可以如下表达:

Box::Box(double lv, double wv...) : length = lv, width = wv...
{
    //code-in
}
Box::Box(double side) : Box(side, side...)
{
    //code-in
}

副本构造函数的实参必须是引用(最好为const引用)

this指针:

返回this指针需要将函数类型转为指针类型

可以依靠this指针构造一个方法链:

// 所有的成员函数都为指针类型且返回this指针
myBox.setLength(20.0).setwidth(40.0).setHeight(10.0);

友元:

友元可以访问类中的所有对象,但破坏了OOP原则(封装)

在类中使用指针:

这里懒得写解释了直接上全部实例代码:

点我打开 

之后可能会多写一些博客笔记,顺便在上面登记一些程序(轮子)和习题(**算法~)^_^

标签:Box,...,初始化,double,C++,面向对象,构造函数,基本概念,指针
来源: https://www.cnblogs.com/BaiShun09/p/16676678.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有