十二章-类设计回顾-重要知识点

简介: 十二章-类设计回顾-重要知识点

默认构造函数

1.没有定义构造函数,编译器将自动定义默认构造函数,如果定义了构造函数,将不会定义默认构造函数,如果需要默认构造函数则需要自己添加。

2.如果是派生类并且数据成员中还有类的话,默认构造会调用基类和数据成员相关类的构造函数。

3.如果类包含指针对象。必须初始化指针。

复制构造函数

复制构造函数接受所属类的对象作为参数

有四种情况会调用复制构造函数:

1.用已有对象初始化新对象

2.按值将对象传递给函数

3.函数按值返回对象

4.编译器生成临时对象

在使用new初始化的成员函数通常要求执行深复制,或者类可能包含需要修改的静态变量,在这些情况下需要自己定义复制构造函数来满足要求。


赋值运算符

默认的赋值运算符用于处理同类对象之间的赋值。

注意初始化是创建新的对象,而赋值是修改原有对象。

什么时候需要显示定义赋值运算符:

1.当需要深复制的时候

2.将一种类型赋值给另外一种类型

将一种类型赋值给另外一种类型还有一种方法就是,采用转换函数,将一个类型转换为另外一种类型,再进行同种对象间的赋值。


其他的类方法

1.构造寒素并不会被继承

2.一定要定义显示的析构函数去清理构造函数中用new开辟的内存。基类析构函数一定要设置为虚析构函数。

3.一个构造函数可以充当转换函数。例如

Star (const char*);//一个参数的构造函数
Star (const Spectral &, int members = 1);
Star north;
north = "polaris";

如果不想要这种隐式转换,则需要将一个参数的构造函数用关键词explicit禁止隐式转换,但是还是允许显示转换。

4.将类对象转换为其他类型,应该定义转换函数。转换函数可以是没有参数的类成员函数,也可以是返回类型被声明为目标类型的类成员函数。即使没有声明返回类型,函数也应返回所需返回值。

5.按值传递对象与传递引用

常用引用来传递对象的原因有两种:

1.引用传递效率高

2.在继承使用虚函数时,被定义为接受基类引用参数的函数可以接受派生类。


目录
相关文章
|
6月前
|
Java
软件工程设计原理迪米特法则原则优缺点及JAVA代码举例
【4月更文挑战第8天】迪米特法则,也称为最少知识原则,是软件工程中一个旨在减少软件实体之间耦合关系的设计原则。它建议一个对象应该对其他对象有尽可能少的了解,并且只与直接的朋友通信。
90 10
|
6月前
|
设计模式 Java
23种设计模式,外观模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】外观模式(Facade Pattern)是一种使用频率非常高的结构型设计模式,其核心思想是为子系统中的一组接口提供一个一致的界面。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。简而言之,外观模式就是客户端与复杂子系统之间的一个简单而统一的接口
74 3
|
6月前
|
存储 Java
软件工程设计原理单一职责原则 ,具体实现及JAVA代码举例
【4月更文挑战第6天】单一职责原则(Single Responsibility Principle, SRP)是面向对象设计原则之一,它指出一个类应该仅有一个变化的原因,即一个类应该只负责一项职责。这样做的目的是降低类的复杂性,提高系统的可维护性。
56 1
|
6月前
|
存储 C++
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)
|
6月前
|
Java
软件工程设计原理里氏替换原则 ,具体实现及JAVA代码举例
里氏替换原则(Liskov Substitution Principle, LSP)是面向对象设计的基本原则之一,由Barbara Liskov提出。这个原则指出,如果类 S 是类 T 的子类型,则程序中使用 T 的对象的地方都可以不经修改地使用 S 的对象。换句话说,子类的对象应该能够替换掉它们的父类对象,而不影响程序的正确性。这个原则强调了继承关系中的行为兼容性,保证了基类和派生类之间的正确抽象和继承关系。
80 3
|
3月前
|
设计模式 Java
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
文章提供了一份常用设计模式的全面介绍,包括创建型模式、结构型模式和行为型模式。每种设计模式都有详细的概念讲解、案例说明、代码实例以及运行截图。作者通过这些模式的介绍,旨在帮助读者更好地理解源码、编写更优雅的代码,并进行系统重构。同时,文章还提供了GitHub上的源码地址,方便读者直接访问和学习。
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
|
6月前
|
设计模式 算法 搜索推荐
23种设计模式,策略模式的概念优缺点以及JAVA代码举例
【4月更文挑战第10天】设计模式是软件工程中的一种最佳实践指导,用于解决常见的设计问题。它们被分类为创建型、结构型和行为型模式。其中,策略模式是一种行为型设计模式,旨在定义一系列算法,封装每一个算法,并使它们可互换。策略模式允许算法独立于使用它们的客户端变化
74 2
|
6月前
|
设计模式 存储 Java
23种设计模式,组合模式的概念优缺点以及JAVA代码举例
【4月更文挑战第5天】组合模式(Composite Pattern)是一种结构型设计模式,旨在通过将对象组合成树形结构以表示部分-整体的层次结构,使用户对单个对象和组合对象的使用具有一致性。这种模式让客户可以统一地处理单个对象和组合对象
73 6
|
6月前
|
Java 关系型数据库
软件工程设计原理开放封闭原则 ,具体实现及JAVA代码举例
【4月更文挑战第4天】开放封闭原则(Open/Closed Principle, OCP)是面向对象设计的核心原则之一,它指出软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。这意味着在不修改已有代码的前提下,可以通过扩展来增加新的功能,从而提高软件系统的灵活性和可维护性
71 1
|
6月前
|
Java 开发者
软件工程设计原理接口隔离原则 ,具体实现及JAVA代码举例
【4月更文挑战第7天】接口隔离原则(Interface Segregation Principle, ISP)是面向对象设计原则之一,旨在减少不必要的依赖关系,通过拆分庞大且臃肿的接口为更小、更具体的接口来实现。这个原则强调“客户端不应该被迫依赖于它不使用的接口”,意味着一个类不应该被迫实现它不使用的方法。
49 1