21xrx.com
2024-11-10 00:26:05 Sunday
登录
文章检索 我的文章 写文章
C++中类的对象初始化方法有哪三种?
2023-07-02 08:19:19 深夜i     --     --
C++ 对象 初始化 三种

C++语言中,类是一种用户自定义的数据类型。在使用类之前,我们需要先定义类,即定义类的成员变量和成员函数,然后才能创建类的对象。在创建类的对象时,有三种常用的初始化方法。

1. 默认初始化

默认初始化是指创建对象时,不显式地对成员变量进行初始化。在这种情况下,成员变量会按照它们所属类型的默认值进行初始化。例如,整型变量的默认值为0,浮点型变量的默认值为0.0,指针类型变量的默认值为NULL。

例如,定义一个名为“Person”的类,并创建对象“p”时,可以采用如下方式进行默认初始化:


class Person

public:

  string name;

  int age;

;

int main()

  Person p; //默认初始化

  return 0;

2. 列表初始化

列表初始化是指使用初始化列表({})对类的对象进行初始化。这种初始化方法可以明确地指定每个成员变量的初始值。如果某个成员变量在初始化列表中没有指定初始值,则会被默认初始化。

例如,继续使用上述“Person”类进行列表初始化:


int main() {

  Person p = 18 ; // 列表初始化

  return 0;

}

这里,我们使用花括号{}来进行列表初始化,裹在花括号中的值依次对应类中各个成员变量的初始值。在这个例子中,“name”成员变量的初始值为“张三”,“age”成员变量的初始值为18。

3. 构造函数初始化

构造函数是类中的一个特殊函数,用来创建对象时进行初始化。它的特殊之处在于,每当创建对象时,都会自动调用构造函数。

例如,重新定义“Person”类并在其中添加一个构造函数:


class Person {

public:

  string name;

  int age;

  Person(string n, int a) // 构造函数初始化

    name = n;

    age = a;

  

};

int main() {

  Person p("张三", 18); // 构造函数初始化

  return 0;

}

这里,我们定义了一个构造函数来初始化成员变量值。在创建对象时,使用圆括号()并将构造函数的参数传递给它,即可调用构造函数进行初始化。

综上所述,C++中类的对象初始化方法有三种:默认初始化、列表初始化和构造函数初始化。不同的初始化方式适用于不同的场景,程序员可以根据需要自己选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复