一、公有(Pulic)继承“继承”是类的重要特性。A类继承B类,我们称B类为“基类”,也称为“父类”,A类则相应地被称为“派生类”或“子类”。A类继承了B类之后,A类就具有了B类的部分成员。那么,究竟从基类那儿得到了哪些成员,这由2方面决定,①继承方式,②基类成员的访问权限(即public/priv...
分类:
其他好文 时间:
2015-08-10 19:50:14
阅读次数:
101
在C++中对象的内存布局与类成员声明的顺序一致,静态成员放在数据区(Data Section)而非对象内存中,若多个类静态成员名称相同,C++则按照name mangling技术进行重命名保证名称的唯一性。若类之间发生了继承关系(无虚拟指针无虚继承)时,按照基类、子类成员顺序排列,另在C++对象复制...
分类:
编程语言 时间:
2015-08-09 15:25:01
阅读次数:
150
我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到所有相关类...
分类:
编程语言 时间:
2015-08-08 06:26:30
阅读次数:
136
原文链接:http://blog.csdn.net/wxq1987525/article/details/66195291.子类和父类返回值参数相同,函数名相同,有virtual关键字,则由对象的类型决定调用哪个函数。2.子类和父类只要函数名相同,没有virtual关键字,则子类的对象没有办法调用到...
分类:
编程语言 时间:
2015-08-07 10:49:47
阅读次数:
125
1、类成员函数的重载:
重载:如果同一作用域内的几个函数名字相同但是形参列表不同,我们称之为重载。
成员函数被重载的特征:
(1)相同的范围(比如在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
2、覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;...
分类:
编程语言 时间:
2015-08-07 09:38:18
阅读次数:
136
ps:const对象只能调用const函数!!非const对象随便!!
成员指针只应用于类的非 static
成员。static 类成员不是任何对象的组成部分,所以不需要特殊语法来指向 static
成员,static
成员指针是普通指针。
int *p = &Screen::total;
(total 是 static int total;)
例子:
#incl...
分类:
其他好文 时间:
2015-08-06 13:27:36
阅读次数:
107
本文主要整理自stackoverflow上的一个对问题Meaning of “const” last in a C++ method declaration?的回答。测试1 对于下边的程序,关键字const的作用在哪里? 1 #include 2 3 class MyClass 4 { 5...
分类:
其他好文 时间:
2015-08-06 00:16:56
阅读次数:
173
第三章 对象和类型本章的内容: 类和结构的区别 类成员 按值和按引用传送参数 方法重载 构造函数和静态构造函数 只读字段 部分类 静态类 Object类,其他类型都从该类派生而来3.1 类和结构 类和结构都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法 结构和类的区别是他们在内存...
在类中再定义一个类,则将在类中再定义的那个类称为内部类;内部类可分为成员内部类、局部内部类、匿名类1、成员内部类在内部类中可以随意使用外部类的成员方法以及成员变量,尽管这些类成员被修饰为private;但内部类的成员只有在内部类的范围之内是可知的,不能被外部类使用内部类的对象实例化操作必须在外部类使...
分类:
其他好文 时间:
2015-08-03 22:39:01
阅读次数:
158
DECLARE_MESSAGE_MAP( )说明:你的程序中的每一个CCmdTarget的派生类都可以提供一个消息映射以处理消息。在你的类声明的末尾使用DECLARE_MESSAGE_MAP宏。然后,在实现了类成员函数的.CPP文件中加入BEGIN_MESSAGE_MAP宏,再加入每个消息处理函数的...
分类:
其他好文 时间:
2015-08-03 16:28:01
阅读次数:
102