数组的大小是固定的。如果元素个数动态,就使用集合类。 List<T>是与数组相当的集合类。其他的集合:队列、栈、链表、字典和集。 .NET Framework 1.0 包括非泛型集合类,如 ArrayList 和 HashTable 。 创建List 使用默认构造函数创建一个空列表。如果列表添加元素 ...
C++新手很容易陷入两个认识上的误区: 1.任何类如果不显示的定义一个构造函数那么编译器就会构造出一个默认构造函数。 2.默认构造函数负责类的所有数据成员的初始化,显然不是这样的。 为什么不是这样的,下面来进行详细的说明和解答,下面会说明在什么情况下一种有用的构造函数会被编译器构造出来。 类的默认构 ...
分类:
其他好文 时间:
2016-08-23 23:18:42
阅读次数:
127
C++构造函数、析构函数、虚函数之间的关系 1. 如果我们定义了一个构造函数,编译器就不会再为我们生成默认构造函数了。2. 编译器生成的析构函数是非虚的,除非是一个子类,其父类有个虚析构,此时的函数虚特性来自父类。3. 有虚函数的类,几乎可以确定要有个虚析构函数。4. 如果一个类不可能是基类就不要申 ...
分类:
编程语言 时间:
2016-08-22 12:10:57
阅读次数:
173
构造函数的任务是初始化数据成员的,在类中,如果没有显示定义任何构造函数,编译器将为我们创建一个构造函数,称为合成的默认构造函数,合成的默认构造函数使用与变量初始化相同的规则来初始化成员。即当类中的数据成员没有在构造函数中显示初始化,将执行默认初始化: 1.对于内置类型(如int,double,cha ...
分类:
编程语言 时间:
2016-08-19 13:01:38
阅读次数:
213
class Test{public: Test() {} Test(int a) {}} 1、栈上创建对象 1.1 无括号 Test a; // 调用默认构造函数,栈上分配内存创建对象 1.2 有括号 Test a(); // 无任何意义,声明一个返回值为Test对象的无参函数 1.3 有括号+参数 ...
分类:
编程语言 时间:
2016-08-10 19:02:39
阅读次数:
172
常见问题 Q1. 下列关于构造函数的描述中,错误的是( ) A. 构造函数可以设置默认的参数 B. 构造函数在定义类对象时自动执行 C. 构造函数可以是内联函数 D. 构造函数不可以重载 Q2. 下列代码中a、b的各个成员变量值是多少? Q3. 运行下面的C++代码,其输出结果是什么? 构造函数、成 ...
分类:
编程语言 时间:
2016-08-03 23:51:57
阅读次数:
190
条款4:确定对象被使用前已经初始化 一、 变量在不同情况下可能会初始化,也可能不会初始化。 注意初始化和赋值的区别。 1、在类中内置类型不会发生隐式初始化,自定义有默认构造函数的能被默认初始化 所以在构造类时务必初始化内置类型,最好给自定义的对象显示初始化避免在函数体中赋值浪费资源。 2、内置类型在 ...
分类:
编程语言 时间:
2016-07-30 12:00:56
阅读次数:
148
Java继承中,在调用子类构造函数时,若没有调用父类自定义构造函数时,子类将调用父类的默认构造函数。 ...
分类:
编程语言 时间:
2016-07-25 10:32:27
阅读次数:
142
c++ string的实现 做完textquery,再做string。感觉简单太多了。 1)最基本 string功能实现了。 [],=,+. 2) 基本是熟悉指针的值copy的场景。 3)看了下网上一些例子,不少都没有 str_capition 这个字段。默认构造函数的大小只有1个字节。就算是例子, ...
分类:
编程语言 时间:
2016-07-17 09:33:59
阅读次数:
177
(1)const 成员变量的初始化,只能在构造函数初始化列表初始化,其实在其定义处也可以直接初始化 (2)引用成员变量的初始化,也只能在构造函数初始化列表中进行 (3)对象成员的初始化,如果子对象没有默认构造函数,也只能放在外部类的构造函数初始化列表初始化。 所以上面的问题有两个解决版本,一是在Ob ...
分类:
其他好文 时间:
2016-06-25 17:49:24
阅读次数:
182