静态课堂的现实生活意义
static class real life significance
我读了很多关于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
类型的对象。不能执行此操作,因为B
是A
的成员类,因此需要实例化类型为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;
}
相关文章:
- 如何在课堂上重用和重新初始化 c++ discrete_distribution?
- 在课堂上创建了一个朋友,给出"无输入文件"错误
- C++来自课堂的内存数据?
- 部分课堂上的互斥体
- 课堂上的一行,使整个应用程序坏了. 0xC000005错误
- 如何在课堂上正确使用升压通道(和光纤)?
- 如何在课堂上进行多个打字重载
- 如何在课堂上访问私有结构
- 使用Mutex,lock_guard,在课堂中正确地lock
- 当记忆分配给课堂时
- 课堂中成员函数模板的明确实例
- 在课堂上具有多个继承
- TCS 模拟生活 2019 第 2 轮问题:跳跃游戏
- 尝试模拟纯虚拟课堂
- Qt - 在课堂上连接 - 出了点问题 - 这个
- 使用类C 设计生活游戏
- 课堂内的C 模板
- 命名空间内的范围功能与课堂内的功能
- 在课堂中使用模板中的混乱
- 静态课堂的现实生活意义