C++ 学习记录,小技巧
1. C++和C#定义变量的区别:
C++:一般在定义变量时一定要初始化值,否则如果变量没有赋值时。系统会得到一个不确定的值。
C#:则不用,如果一个变量没能赋值就使用.VS的编译将不能通过。
2. C++的常量和引用
常量和引用只能被初始化.而不能被赋值.
#include <iostream>
using namespace std;
class rectangle
{
public:
//:length(5),width(6)专门给类变量初始化使用的.
rectangle():length(5),width(6){cout<< length*width<<endl;}
//当这个变量定义为常量是.不行在方法体中赋值.只能够初始化.
// rectangle(){length=5;width=6;cout<< length*width<<endl;}
int area(){return length*width;}
private:
const int length;//当这个变量定义为常量是.不能在方法体中赋值.只能够初始化.
int width;
};
int main()
{
rectangle *a=new rectangle;
cout<<a->area()<<endl;
return 0;
}
3. 栈和堆的区别.
栈由于是系统自动分配.因此速度较快.但是缺点是可存放比较小,只有2M.假如我们要存放大量的数据.本显然是不行的.那么就得放到堆里.堆是一大堆不连续的内存区域.在系统中由链表将它们串接起来.因此它可存放空间很大.
- 栈由系统自动分配内存.堆要程序员进行申请.
- 栈中空间比较小.只有2M.堆的上限是系统有效的虚拟内存.
详细看: http://hi.baidu.com/blackxcq/blog/item/b22b8f3d26fc8402bba1676b.html
A a; //定义栈对象.
A *a=new A;//定义堆对象.
4. C++不能为一个对象不能定义两个指针.原因当一个对象是被销毁时.一个指针就指向
参考消息:http://www.enet.com.cn/eschool/video/autohtml/310/682/14.shtml