摘要: 转载自:https://www.jianshu.com/p/84d96a6385b0 我们的源代码通过预处理,编译,汇编,链接后形成可执行文件,)那么当我们在cmd窗口敲出指令$test argv1 argv2\n 后,操作系统是怎么将我们的可执行文件加载并运行的呢? 首先知道,计算机的操作系统的启 阅读全文
posted @ 2020-04-17 22:36 Rogn 阅读(3090) 评论(0) 推荐(0) 编辑
摘要: 在C++中,什么叫做菱形继承问题(也可以叫钻石问题),怎么避免它? 假设我们有类B和类C,它们都继承了相同的类A。另外我们还有类D,类D通过多重继承机制继承了类B和类C。因为上述图表的形状类似于钻石(或者菱形),因此这个问题被形象地称为钻石问题(菱形继承问题)。现在,我们将上面的图表翻译成具体的代码 阅读全文
posted @ 2020-04-17 19:41 Rogn 阅读(1549) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://blog.csdn.net/qq_36359022/article/details/818702 C++虚函数表是支撑C++多态的重要技术,它是C++动态绑定技术的核心。 一、内存分布 假设有一个基类ClassA,一个继承了该基类的派生类ClassB,并且基类中有虚函数,派生 阅读全文
posted @ 2020-04-17 11:04 Rogn 阅读(1917) 评论(0) 推荐(0) 编辑
摘要: 面试中被问到了,但是当时没答出来,后来发现挺简单的。 指明域就可以了 例如, #include<iostream> class Base{ public: virtual void f() { std::cout << "base" << std::endl; } }; class Test : p 阅读全文
posted @ 2020-04-17 10:03 Rogn 阅读(3786) 评论(0) 推荐(0) 编辑
摘要: 先说结论: class默认的是private,struct默认的是public public继承:子类可以访问父类除私有成员以外的所有成员 private继承:子类不能访问父类的任何成员 如果是动态创建对象,必须用public继承,否则创建的时候就会失败。 #include<iostream> cl 阅读全文
posted @ 2020-04-17 09:54 Rogn 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 先说结论: 构造: 基类成员对象的构造函数 基类的构造函数 子类成员对象的构造函数 子类的构造函数 析构: 子类的析构函数 子类成员的析构函数 基类的析构函数 基类成员的析构函数 借一幅图(https://blog.csdn.net/wq_1996/article/details/78219479) 阅读全文
posted @ 2020-04-17 09:12 Rogn 阅读(2499) 评论(0) 推荐(1) 编辑