今天遇到这个问题,在网上看了一会资料后找到原因,即:
switch 的 case 中不能定义变量,不然就会报错.可能是变量的初始化会因为有时候case条件不被执行而跳过.
后来想到三个解决的方法:
1:用if else 代替 switch 语句;
2:在case中用{}将代码括起来,这样在{}中就能定义变量了;
3:如果变量在各个case中都要用的话,就把变量定义在switch外面吧; http://www.2cto.com/kf/201112/115456.html
只有一个点的树的高度是0
9.如果X大于0并小于65536,用移位法计算X乘以255的值为()
答:(X<<8)-1,必须有括号,因为移位运算符的优先级没有减号的优先级高
3.结构体的赋值:
people Jack = {180.5, 179.2, "Jack", "济南"};
Mike = Jack;
4.一个类的成员变量列表中包含另一个类的对象,叫做包含(包容)。
6.delete和delete[]的区别:
delete p 是删除释放一个单元,delete [] p 是释放 多个单元,具体的数据目是查系统的分配表得到的。
对于内置类型来说,delete和delete []是一样的 事实上new和delete都是两步操作,分配(释放)堆内存和调用构造(析构)函数,对于堆内存的释放,确实不需要做额外的事情,delete和delete []无差别,区别就在于调用析构函数这一步,如果用delete只会调用第一个对象的析构,只有调用delete[]才会调用全部的析构
13.在一个类中定义了一个新的类型,这个类型只能在该类用使用。新类型称为嵌套类
14.endl在执行时,做两件事情:
1)输入'\n'
2)刷新缓冲区flush()
解释:执行换行符\n与执行结束符endl,最大的区别在处理文件上,以文件输出流(ofstream)为例。
当流的缓冲区未满时,执行'\n'是不会马上写到文件里。但是执行endl会强行把缓冲区里的内容写入文件中。