静态课堂的现实生活意义

static class real life significance

本文关键字:生活 课堂 静态      更新时间:2023-10-16

我读了很多关于static关键字的文章,我只找到了static变量,static函数,但没有讨论static类,你能解释一下吗。

  • 为什么我们在c++中使用静态类
  • 我们为什么要引入这种类型的课程
  • 给出静态类的物理意义
  • 举一个静态类的真实例子
  • 如果有任何限制,那么告诉我什么

我在等你的答复。提前谢谢。

C++中没有静态类。static指的是存储类,即它适用于对象或函数,而不是数据类型。

在Java中,static class应用于嵌套在其他类中的类时,意味着嵌套类可以独立于封闭类的任何实例进行实例化。在C++中,总是的情况。C++中的嵌套类总是独立的数据类型。

我的意思是:首先让我们来看看这个Java代码:

public class A {
public class B {
}
public static void main(String[] args)
{
A.B b1 = new A.B();  // <-- This is ill-formed, because A.B is not
//     an independent data type
A a = new A();
A.B b2 = a.new B();  // <-- This is correct. Use an instance of A to
//     create an object of type A.B.
}
}

它定义了一个类A和一个嵌套类(即成员类或子类)A.B。主程序的第二行显示了如何不能实例化A.B类型的对象。不能执行此操作,因为BA的成员类,因此需要实例化类型为A的现有对象。主程序的第三行显示了如何做到这一点。

为了能够直接实例化A.B类型的对象(独立于任何A类型的实例),必须使B成为A:的静态成员类

public class A {
public static class B {   // <---- I inserted 'static'
}
public static void main(String[] args)
{
A.B b1 = new A.B();  // <-- This is now well-formed
A a = new A();
A.B b2 = a.new B();  // <-- This is now ill-formed.
}
}

另一方面,在C++中这是不需要的,因为在C++中,成员类总是一个独立的数据类型(从某种意义上说,不需要封闭类的实例就可以创建嵌套类的实例):

class A
{
public:
class B
{
};
};
int main()
{
A::B b;   // <--- Perfectly well-formed instantiation of A::B
return 0;
}