C++中可以用struct和class来定义类型,这两种类型有什么区别
2017-03-23 15:51
423 查看
如果没有标明成员函数或者成员变量的的访问权限级别,在struct中默认的是public,而在class中默认的是private。
在C#中。struct和class有什么区别?
C#和C++不一样,在C#中如果没有标明成员函数或者成员变量的访问权限级别,struct和class 都是private的。struct和class的区别是struct定义的是值类型,值类型的实例在栈上分配内存;而class定义的是引用类型,引用类型的实例实在堆上分配内存。
在C#中可以为类型定义一个特殊的构造函数:静态构造函数。
这个函数的特点是第一次被使用之前由运行时自动调用,而且保证只调用一次。下面看一个面试题:
得到的打印结果:a1、a2、a3、a4
在调用类型B的代码之前线执行B的静态构造函数,在初始化的时候先对静态的成员函数进行初始化,即先执行
再执行静态构造函数static B();
因此先打印a1,再打印a3,接下来再执行非静态的
静态成员最主要的一个应用就是实现Singleton模式。就是保证此类型的对象唯一性。
在C#中。struct和class有什么区别?
C#和C++不一样,在C#中如果没有标明成员函数或者成员变量的访问权限级别,struct和class 都是private的。struct和class的区别是struct定义的是值类型,值类型的实例在栈上分配内存;而class定义的是引用类型,引用类型的实例实在堆上分配内存。
在C#中可以为类型定义一个特殊的构造函数:静态构造函数。
这个函数的特点是第一次被使用之前由运行时自动调用,而且保证只调用一次。下面看一个面试题:
class A { public A(string text) { Console.WriteLine(text); } } class B { static A a1=new A("a1"); A a2=new A("a2"); static B() { a1=new A("a3"); } publicB() { a2=new A("a4"); } } class Program { static void Main(string[] args) { B b=new B(); } }
得到的打印结果:a1、a2、a3、a4
在调用类型B的代码之前线执行B的静态构造函数,在初始化的时候先对静态的成员函数进行初始化,即先执行
static A a1=new A("a1");
再执行静态构造函数static B();
因此先打印a1,再打印a3,接下来再执行非静态的
静态成员最主要的一个应用就是实现Singleton模式。就是保证此类型的对象唯一性。
相关文章推荐
- C++中class与struct的区别(struct的类型名同时可以作为变量名)
- C++中class与struct的区别(struct的类型名同时可以作为变量名)
- 标题:C++中struct与class的区别是什么?
- C/C++class和struct有什么区别?
- C/C++面试题:class和struct有什么区别?
- C和C++中struct的区别是什么以及C++中struct和class的区别是什么
- 类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?
- class和struct做类型定义时的区别
- C++中struct与class的区别是什么?
- (转)类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?
- C++中struct与class的区别是什么?
- C++:对于class来说,什么函数可以在class里面定义,什么函数最好在class外面定义(我的理解)
- C/C++面试题:class和struct有什么区别?
- C/C++面试题:class和struct有什么区别?
- C++中struct与class的区别是什么
- c++ 中 class 和 struct 的区别是什么
- C++中struct与class的区别是什么?
- C/C++面试题:class和struct有什么区别?
- C++中struct和class的区别及C++ this变量和const变量类型
- C++中struct与class的区别是什么?