摘要: 当一个类A中没有任何成员变量与成员函数,这时sizeof(A)的值是多少? 答:不是0,如果是0,声明一个class A[10],而每个对象占用空间为0,这时没办法区分A[0],A[1]……。 注意:sizeof是编译时运算符,编译时就确定了,所以类似int id[sizeof(unsigned l 阅读全文
posted @ 2016-08-29 11:00 绿水白川 阅读(140) 评论(0) 推荐(0) 编辑
摘要: struct默认成员公有,class默认成员私有,其余功能相当。 阅读全文
posted @ 2016-08-29 10:57 绿水白川 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 从静态存储区域分配,如全局变量,static变量。 在栈上创建,如函数执行时,函数内局部变量的存储单元都可以在栈止创建,函数执行结束时释放,栈内存分配运算内置于处理器的指令集。 从堆上分配,如malloc和new,free和delete,动态内存的生存期由程序员决定。 阅读全文
posted @ 2016-08-29 10:56 绿水白川 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 全局对象的构造函数会在main函数之前执行。 阅读全文
posted @ 2016-08-29 10:52 绿水白川 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 两个不同类型的指针间可以使用强制转换,如reinterpret cast,C#是类型安全的。 阅读全文
posted @ 2016-08-29 10:51 绿水白川 阅读(1298) 评论(0) 推荐(0) 编辑
摘要: 当类中含有const、reference成员变量,基类的构造函数需要使用初始化表。 阅读全文
posted @ 2016-08-29 10:50 绿水白川 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 最终结果是i = 5 * 5 + 5 = 30 宏定义相当于是直接进行代码替换,如果要实现先加倍的操作应将DOUBLE(5)用括号括起来。 const与#define的区别: 阅读全文
posted @ 2016-08-29 10:49 绿水白川 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 都在堆上进行动态的内存操作,用malloc函数需要指定内存分配的字节数并且不能初始化对象,new会自动调用对象的构造函数;delete会调用对象的析构函数,而free不会。 阅读全文
posted @ 2016-08-29 10:46 绿水白川 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 重载:允许存在多个同名函数,而这些函数的参数表不同 重写:子类重新定义父类虚函数的方法 实现原理: 重载:编译器根据不同的参数表,对同名函数的名称做修饰,是静态的。 重写:当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同子类指针,动态调用属于子类的该函数,这在编译期间是无法确定的,函数地址是 阅读全文
posted @ 2016-08-29 10:40 绿水白川 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 封装:将客观事物抽象成类,每个类对自身的数据和方法通过各种权限进行管理保护 继承:实现继承(使用基类的属性与方法而无需额外编码)、可视继承(了窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现),前两种是类继承,后一种利用纯虚函数。 多态:将父对象设置成为一个或多个更多 阅读全文
posted @ 2016-08-29 10:36 绿水白川 阅读(130) 评论(0) 推荐(0) 编辑