1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 例如:string str=null; 是正确的,int i=null; 编译器就会报错。 为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?" 例如:int?...
复制值类型的变量和类: 除了string类型为引用类型外,C#的大多数基本数据类型都是值类型。 值类型复制时,会产生一个副本,对副本的修改不会对原值产生影响,而对于引用类型,对象只有一个是存储在堆上的,复制时只是将其引用进行复制,应用中包含了该对象的一个地址。理解null值和可空类型: 可以将...
为何空类的大小不是0呢?
为了确保两个不同对象的地址不同,必须如此。
类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。
同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。
所以,空类的sizeof为1,而不是0.
一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明...
分类:
其他好文 时间:
2015-04-01 11:31:49
阅读次数:
159
问:定义一个空类型,里面没有任何成员变量和成员函数,对该类型求sizeof,得到的结果为?答:1。问:为什么不是0?答:空类型的实例中不包含任何信息,本来求其sizeof应为0,但当声明该类型的实例时,它必须在内存中占有一定的空间,否则无法使用 这些实例。而其所占空间的大小,由编译器决定。VS中,....
分类:
其他好文 时间:
2015-03-31 19:39:55
阅读次数:
126
5.了解C++默默编写并调用哪些函数 1.C++空类 C++会为一个空类建立以下函数 (1).默认构造函数 (2).默认拷贝构造函数 (3).析构函数 (4).赋值运算符(如果成员包含...
分类:
编程语言 时间:
2015-03-29 19:21:53
阅读次数:
158
题意:给你一个序列a[i],代表 i这个数 在b数列中有多少个值在它前面且比它大,问你求B序列解题思路:线段树的简单应用,找第几个空,类似二分。解题代码: 1 // File Name: i.cpp 2 // Author: darkdream 3 // Created Time: 2015年...
分类:
其他好文 时间:
2015-03-29 10:43:46
阅读次数:
108
1、缺省构造函数。
2、缺省拷贝构造函数。
3、 缺省析构函数。
4、缺省赋值运算符。
4、缺省取址运算符。
5、 缺省取址运算符 const。
class A
{
public:
A(){}//缺省构造函数
A(const A&){}//拷贝构造函数
~A(){}//析构函数
A&operator=(const A&){}//赋值运算符
A*operator&(){...
分类:
编程语言 时间:
2015-03-27 22:24:57
阅读次数:
209
面向对象的三大特征=封装性+继承性+多态性
封装=将客观事物抽象成类,每个类对自身的数据和方法实行权限的控制
继承=实现继承+可视继承+接口继承
多态=将父类对象设置成为和一个或者更多它的子对象相等的技术,
用子类对象给父类对象赋值之后,
父类对象就可以根据当前赋值给它的子对象的特性一不同的方式运作C++的空类有...
分类:
编程语言 时间:
2015-03-21 21:22:44
阅读次数:
190
问题:定义一个空的类型,里面没有任何的成员变量或者成员函数,对这个类型进行 sizeof 运算,结果是?结果是1,因为空类型的实例不包含任何信息,按道理 sizeof 计算之后结果是0,但是在声明任何类型的实例的时候,必须在内存占有一定的空间,否则无法使用这些实例,至于占据多少内存大小,由编译器决定...
分类:
编程语言 时间:
2015-03-20 20:22:19
阅读次数:
152
[C#泛型系列文章]目录导航第一部分:O'Reilly 出版的《C# Cookbook》泛型部分翻译第一回:理解泛型第二回:获取泛型类型和使用相应的泛型版本替换ArrayList第三回:使用相应的泛型版本替换Stack和Queue第四回:链表的实现和可空类型第五回:反转SortedList里的内容第...