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


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原则(封装)

在类中使用指针:

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

点我打开 

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288659.html

(0)
上一篇 2022年9月10日
下一篇 2022年9月10日

相关推荐

发表回复

登录后才能评论