这是什么意思?(关于类和实例)

本文关键字:于类 实例 是什么 意思 | 更新日期: 2023-09-27 17:57:05

using System;
class Program
{
    static void Main()
    {
        haha haha1;
    }
}
class haha
{
    int a;
    int b;
    public haha(int a, int b)
    {
        this.a = a;
        this.b = b;
    }
}

我知道如果我想制作实例,我应该编写如下代码:

haha haha1 = new haha(1,2);

但是当我写只是

haha haha1;

没有编译错误。

haha haha1;是什么意思?是不是代码错误?

这是什么意思?(关于类和实例)

这不是错误的代码。它是一个变量声明。

haha haha1;

只需声明一个名为 haha1 的变量,其类型为 haha。但是,此变量未分配值。

使用 new 关键字实例化对象时:

haha1 = new haha();

然后,变量引用创建的对象

这取决于编程语言,但大多数编程语言选择以下两个选项之一:

1) 隐式初始化 (C++)

haha haha1;

haha haha1 = new haha1();

2) 空初始化 (C#)

haha haha1;

haha haha1 = null;

无论发生什么,行为的结果都称为"默认值"或"默认初始值设定项"。有关详细信息,请参阅您的语言文档。

一些注意事项:C 和 C++ 允许变量未初始化,因此在您分配给它们之前,它们没有确定的值。C++非指针不能为 NULL,因此它们总是用某些东西初始化(但其他所有内容,包括指针,都遵循 C 规则)。