随笔分类 -  VC++

学习VC++过程中的点点滴滴
摘要:1、在C++中动态内存分配在堆上,采用new和delete来申请和释放内存空间,C++运行环境不会自动释放内存空间。如果申请了内存空间不再使用,且未释放将会造成内存泄露。为数组动态分配内存的语法如下: char * pStr = new char[20]; //申请20个字节的字符串数组 delete [] pStr; //释放数组,方括号是为了指出要释放的是一个数组2、CLR的动态内存分配以不同的方式工作,CLR维护着独立于本地C++堆的、自己的内存堆。当不再需要在CLR堆上分配的内存时,CLR将自动将其删除。所以我们不需要再为CLR编写的程序中使用delete运算符。在C++/CL... 阅读全文
posted @ 2011-10-26 11:28 玻璃城市 阅读(1312) 评论(0) 推荐(0)
摘要:VC++中如果类包含有纯虚函数,则类必须声明为抽象类,如下:class CGDIElement abstract //类包含纯虚函数时,必须定义为抽象类{public:CGDIElement(void);//构造函数不能是虚函数,派生类继承方式见后virtual ~CGDIElement(void); //析构函数如果要让派生类继承,必须定义为虚函数virtual void Init(void) = 0; //纯虚函数};派生类的定义如下:class CGDILine : public CGDIElement{public:CGDILine(void):CGDIElement() //调用基类 阅读全文
posted @ 2011-10-25 17:18 玻璃城市 阅读(1853) 评论(0) 推荐(0)
摘要:在派生类的定义中为基类提供访问说明符,如下:class CGDILine : public CGDIElement{public:CGDILine(void);};共有三种情况:private,protected,public,默认说明是private,分别说明了派生类与基类之间的关系:private 基类的成员在派生类中永远都不可访问protected 基类的public成员在派生类中成为protectedpublic 基类的成员在派生类中的访问级别保持不变 阅读全文
posted @ 2011-10-25 15:54 玻璃城市 阅读(271) 评论(0) 推荐(0)
摘要:VC++中类指针使用dynamic_cast<>()运算符进行转换,其与static_cast<>()之间的区别在于:dynamic_cast<>()在运行时检查转换的有效性,如果无效则结果为空(NULL)static_cast<>()在编译时检查转换的有效性。还存在一种老式的强制转换:(要转换成的类型)表达式在C++中已不建议使用。 阅读全文
posted @ 2011-10-25 15:01 玻璃城市 阅读(763) 评论(0) 推荐(0)