C ++中的参数化构造函数:工作与示例

已发表: 2021-05-27

目录

什么是构造函数?

构造函数是类的成员函数,用于初始化类中的对象。 C++中,当创建作为类实例的对象时,会自动调用构造函数。 因此,构造函数是类的特殊成员函数。

什么是参数化构造函数?

参数可以传递给构造函数。 创建对象时,这些参数有助于初始化对象。在 C++ 中创建参数化构造函数,我们可以将参数添加到函数,就像它可以添加到任何其他函数一样。 当定义构造函数的主体时,参数用于初始化对象。

C++中参数化构造函数的语法

类名_of_class{

访问说明符(公共/受保护/私有):

成员变量

成员函数

民众:

name_of_class(variables){ //构造函数代码

}

// 其他函数和变量

}

语法包括具有 name_of_class,后跟包含成员函数和成员变量的访问说明符。 所有这些都包含在构造函数代码中,这意味着它可以在构造函数的主体中调用。

另请阅读: C++ 的开源项目

C++ 中的参数化构造函数示例

#include <iostream>

使用命名空间标准;

类示例

{

私人的:

整数a,b;

民众:

// 参数化构造函数

示例(int a1,int b1)

{

a = a1;

b = b1;

}

整数 getA()

{

返回一个;

}

int getB()

{

返回 b;

}

};

主函数()

{

// 调用构造函数

示例 e1(5, 10);

cout << “e1.a = ” << e1.getA() << “, e1.b = ” << e1.getB();

返回0;

}

输出

说明:私有变量 a 和 b 在类 Example 中声明。 使用函数 Example 声明参数化构造函数。 它包括两个方法getA() 和getB()。 在主类中,调用构造函数,并分配构造函数的访问值。

C++ 中的参数化构造函数是如何工作的?

一个对象被初始化,它保存着值或对象将处理或包含的细节和参数,只要定义了 C++中的参数化构造函数。 然后可以将参数传递给该对象。 该过程与将值传递给函数非常相似。 它也类似于将参数化值传递给对象。

使用参数初始化构造函数主体中定义的对象。 每当声明参数化构造函数时,这些值都应作为参数传递给构造函数。 这些构造函数可以显式或隐式调用。 对象声明的常规方式不起作用。

注意:呼叫类型-

  1. 显式调用- Example e1= Example(0,10)
  2. 隐式调用 - 示例 e1(0,10)

结帐:面向初学者的 C++ 项目创意

C ++中参数化构造函数的用途是什么?

参数化构造函数的使用如下:

  • 构造函数重载
  • 用于在初始化/创建不同对象时为不同对象的各种数据元素分配不同的值

另一个例子:

1.计算矩形面积的程序

#include <iostream>

使用命名空间标准;

// 声明一个类

类矩形{

私人的:

双倍长度;

双倍宽度;

民众:

// 创建参数化构造函数

矩形(双 len,双 brt){

//初始化私有变量

长度 = 长度;

宽度 = brt;

}

双计算面积(){

返回长度 * 宽度;

}

};

int main() {

// 创建对象并初始化数据成员

矩形 rect1(10, 8.6);

矩形 rect2(8.5, 6);

cout << “矩形 1 的面积:” << rect1.calculateArea() << endl;

cout << “矩形 2 的面积:” << rect2.calculateArea() << endl;

返回0;

}

输出

说明:在这个例子中,我们创建了一个带两个参数的参数化构造函数 rectangle():double len 和 double bdt。 这些参数包含用于初始化成员变量长度和宽度的值。 当我们创建 Rectangle 类的对象时,我们将成员变量的值作为参数传递。 我们可以在成员变量初始化的时候用calculateArea()函数计算面积。

1. 显示学生成绩

#include <iostream>

使用命名空间标准;

班级学生{

民众:

int std_id;//数据成员

string std_name;//也是实例变量

浮动标准标记;

学生(int i,字符串 a,float b)

{

std_id = i;

标准名称 = 一个;

标准标记 = b;

}

无效显示()

{

cout<<std_id<<” “<<std_name:<<” “<<std_marks <<endl;

}

};

诠释主要(无效){

学生 s1 =学生(101,“索尼娅”,89); //创建一个学生对象

学生 s2=学生(102,“Nakul”,59);

s1.display();

s2.display(); 返回0;

}

输出

解释:id、name 和marks 是数据成员(也是实例变量)。 学生是一个参数化的构造函数,它的对象是在主类中创建的。

从世界顶级大学在线学习软件开发课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

构造函数只是我们可以传递值的特殊方法。 如果我们不将值传递给构造函数,则最终对象具有一些默认值。 [1] [MOU2]对象保存作为主类一部分的成员变量的方法和值。 这些值最终通过构造函数传递。 C++中参数化构造函数的优点是为不同的对象分配不同的值,并且可以重载。

既然您已经了解了 C++ 中的参数化构造函数,那么如果您想更深入地挖掘并在您的编程生涯中上升,那么请探索印度最大的在线高等教育公司 upGrad 的课程。 您必须查看我们的全栈软件开发计划

什么是构造函数?

构造函数是类中的一种特殊方法,与类同名。 它很特别,因为在创建(实例化)类时会自动调用此方法。 如果构造函数没有参数,则该类被实例化为空值。 构造函数执行初始化任务并初始化类的实例变量。 构造函数的主要目的是建立对象属性的值。 它还用于执行任何只需要执行一次的操作。 构造函数通常在类中声明为公共静态对象,并且使用此构造函数创建对象。

一个类中可以有多少个构造函数?

如果我们谈论 C++,那么构造函数的数量是无限的。 但是,由于其他原因,例如您机器的内存限制,类的复杂性等,可能会有其他限制。因此,构造函数的数量是无限的,但构造函数的参数数量却不是。 一个类中可以有任意数量的构造函数。 但是默认构造函数是必须的。 任何没有默认构造函数的类都是抽象类。 抽象类不能被实例化。

什么是面向对象编程?

面向对象编程是一种编程范式,将“对象”视为程序或计算机系统的基本构建块。 对象是可以包含数据的软件实体,以字段的形式,通常称为属性; 和代码,以过程的形式,通常称为方法。 面向对象的编程专注于数据及其周围的规则,而不是像早期编程语言中常见的那样专注于过程逻辑或控制流。 OOP 将数据作为一个整体而不是作为一组单独的元素来处理。