发布时间:2013-02-20 23:24:14
new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{ int i;public: A(int _i) :i(_i*_i) {} vo.........【阅读全文】
发布时间:2013-02-20 23:23:31
new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{ int i;public: A(int _i) :i(_i*_i) {} vo.........【阅读全文】
发布时间:2013-02-20 23:22:34
new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{ int i;public: A(int _i) :i(_i*_i) {} vo.........【阅读全文】
发布时间:2013-02-20 22:47:07
1. static_cast用法:static_cast < type-id > ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基.........【阅读全文】
发布时间:2013-02-20 22:45:46
带单一参数的构造函数在缺省情况下隐含一个转换操作符,请看下面的代码:class MyClass{public: MyClass(int nParam);// 带一个参数的构造函数private: int m_nData;}void fun(){ MyClass c(0); c =5; // 将5隐式转换为MyClass对象} 编译器重新编辑上述例子代码,如下: .........【阅读全文】