我们学习了 C++ 这么长时间了,我们来看看 C++ 中对象的本质。它里面是用 class 定义的对象,class 是一种特殊的 struct。在内存中 class 依旧可以看做变量的集合,class 与 struct 遵循相同的内存对齐规则。class 中的成员函数与成员变量是分开存放的,及每个对象有独立的成员变量,所有对象共享类中的成员函数。那么我们如果在 class 和 struct 中同时定义相同的成员变量的话,它们所占的内存大小会一样嘛?
分类:
编程语言 时间:
2018-05-30 19:14:51
阅读次数:
173
CBaseThread类 BaseThread.h BaseThread.cpp BaseCallBack.h ...
分类:
编程语言 时间:
2018-05-28 11:45:59
阅读次数:
161
导出C++类(纯虚函数和虚函数) 大致做法就是为 class 写一个 warp ,通过 get_override 方法检测虚函数是否被重载了,如果被重载了调用重载函数,否则调用自身实现,最后导出的时候直接导出 warp 类,但是类名使用 class ,析构函数不需要导出,因为它会被自动调用 纯虚函数 ...
分类:
编程语言 时间:
2018-05-25 13:32:23
阅读次数:
249
一、C++多态 C++的多态包括静态多态和动态多态。静态多态包括函数重载和泛型编程,动态多态包括虚函数。静态多态是指在编译期间就可以确定,动态多态是指在程序运行时才能确定。 二、虚函数 1、虚函数为类的非静态成员函数,访问权限一般为public。函数声明时,在返回值前加virtual关键字,函数定义 ...
分类:
编程语言 时间:
2018-05-25 11:06:20
阅读次数:
163
1 #include 2 using namespace std; 3 /************************************************************************/ 4 /*抽象类不能定义对象,为了强调一个类为抽象类,可将该类的构造函数说明为保... ...
分类:
其他好文 时间:
2018-05-22 12:40:30
阅读次数:
160
1 重载函数要求函数具有相同的返回值类型和函数名称,并具有不同的参数序列,而虚函数则要求这三项(函数名,返回值类型,参数序列)完全相同 2 重载函数可以是成员函数或友元函数 而虚函数只能是成员函数 3 重载函数的调用是以传递参数序列的差别作为调用不同函数的依据,而虚函数根据对象的不同的调用不同类的虚 ...
分类:
其他好文 时间:
2018-05-22 00:05:04
阅读次数:
196
假设为某一组对象提供了一个抽象的规范,其中有一个方法,需要被该对象内部调用,因此不需要对外开放。但是该方法在不同的对象内的行为是不一样的,这就需要不同的对象给出自己的实现。这种情况下,私有的纯虚函数是非常好的选择。 执行结果为 derived::func2() NVI(non -virtual-in ...
分类:
其他好文 时间:
2018-05-21 18:00:25
阅读次数:
176
一、需求分析: 1.访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。 访问采用的是问卷调查的方式,问卷如下所示: 1、您是老师,家长,还是小学生()? A、老师(转到第2题) B、家长(转到第7题) C、小学生(转到第11题) 老师: 2、您教几年级的学生( ...
分类:
其他好文 时间:
2018-05-20 16:44:07
阅读次数:
185
编译出错的原因是,func 是 base 的私有成员。即使运行到此时实际上调用的应该是 derived 的共有成员 func() 也不行,因为语法检查是不考虑运行结果 如果将 base 中的private 换成 public ,即使 derived 中的func () 是private 的,编译依然 ...
分类:
其他好文 时间:
2018-05-18 22:27:03
阅读次数:
177
运行结果 在构造函数和析构函数中调用虚函数时 他们调用的函数是自己的类或基类中定义的函数 不会等到运行时 才决定调用自己还是派生的函数 ...
分类:
其他好文 时间:
2018-05-18 22:18:15
阅读次数:
153