![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 54
Hello_MyDream
这个作者很懒,什么都没留下…
展开
-
C/C++面试题
一.为什么构造函数不能使用virtual关键字修饰?1、虚函数是为了迟绑定吧,为什么要迟绑定?因为好多行为编译期确定不了,需要运行期确定并调用合适的函数去完成相应的功能。但是对象构造的行为是确定的,不管是不是多态,只要有new Object()这种动作,就一定会沿着继承的顺序依次执行对象的构造。这种确定的没有必要的事情,编译器开发的时候也就不会考虑这种机制。2、构造函数是用于创建对象的,而虚函数是对象创建后地址存在虚函数表中的,此时对象尚未创建,无法使用虚函数。实际上我是不认可第二个回答的原创 2020-10-23 19:49:53 · 263 阅读 · 0 评论 -
MFC销售系统项目——静态拆分窗口与自定义消息
一. 静态拆分窗口1、自定义两个类:CSelectView和CDispalyView(它的基类必须是视图类);CSelectView继承于CTreeView,CDispalyView继承于CFormView。2、CMainFrame类中,声明CSplitterWnd类型的对象:private: CSplitterWnd m_spliter; // 切分窗口类对象3、重写框架类CMainFrame的OnCreateClient函数:return TRUE; 自己初始化客户..原创 2020-07-04 01:31:48 · 25944 阅读 · 0 评论 -
Window线程安全与线程控制函数
一. 线程安全问题多线程同时访问全局变量:一个线程取值后失去CPU另一个线程取值后也失去CPU,此时它们保存的就是相同的值。也是是说,比如两个线程再次对全区变量做++操作时变量只会被修改为同样的值。二. 临界区(线程锁)临界区:Critical Section (Critical:临界的、关键的)1、创建CRITICAL_SECTION: CRITICAL_SECTION cs; 2、在使用前进行初始化 ...原创 2020-06-21 03:17:52 · 27009 阅读 · 0 评论 -
Window线程与线程操作函数
创建线程HANDLE hThread1 = ::CreateThread(NULL, 0, ThreadProc1, &a, 0, NULL);HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // 安全属性 通常为NULL SIZE_T dwStackSize, // 参数用于设定线程可以将多少地址空间用于它自己的堆栈原创 2020-06-21 02:58:58 · 26852 阅读 · 0 评论 -
C语言宽字符
一. 多字节字符1. 基于ASCII的GB2312标准ASCII表 0 ~ 127拓展ASCII表 0 ~ 255GB2312 10000000 ~ 11111111(高位) + 10000000 ~ 11111111(低位) 问题:不同国家的字符集会产生乱码2. 基于UNICODE的UTF-8UNICODE(同一码 / 万国码):unicode是2个字节。 这一标准的2字节形式通常称作UCS-2(UnicodeCharacterSet)(原ASCII也位双字节)。然而,受..原创 2020-06-17 14:39:59 · 30388 阅读 · 0 评论 -
C++逆向基础与正向比较——Virtual关键字、虚函数表以及动态绑定的实现
添加Virtual后会多出四个字节,位于结构体的首地址。这个指针是虚函数表指针(vptr / 虚表指针),指向了虚函数表的开始位置;对虚函数表头继续寻址,就可以得到虚函数指针了。可以看出,结构体首地址的指针为三级指针。在vptr指向的位置维护了一个数组,即虚函数表,里面保存了当前类内所有虚函数的地址。这里找来一张图可以参考一下:使用指针来调用一下函数:#define _CRT_SECURE_NO_WARNINGS#include <iostream>using name原创 2020-06-16 16:22:42 · 29675 阅读 · 0 评论 -
C++访问父类私有成员
其实也很简单,因为首地址相同,通过指针访问就可以了。#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;class A { int a = 10;};class B:A { int b;public: B() { *(int *)this = 20; cout << *(int *)this << endl; }};int main(int .原创 2020-06-16 00:00:45 · 27939 阅读 · 0 评论 -
lambda表达式
lambda表达式lambda 表达式 创建一个匿名函数 格式 [捕获的变量](函数的参数) mutable ->ret_type {函数体}(调用的时候传参) [] 捕获的外部变量 [m] 捕获 m 值传递 且拷贝份不能修改 想修改 需要在()后加 mutable 关键字 [&m] 引用捕获m 修改的是本体 [&...原创 2019-03-04 14:36:46 · 28990 阅读 · 0 评论 -
指针常量和常量指针
指针常量与常量指针是较为通俗化的叫法,C++的书籍中一般将其描述为:指针常量(常指针): 指针指向不能改变。 助记:本质为常量,即这个指针指向不可变。常量指针: 指针指向的内容不可变。 助记:本质为指针,即这个指针指向的内容不可变。 ...原创 2019-01-13 14:44:09 · 28481 阅读 · 0 评论 -
C++函数重载实现原理浅析
版权声明:本文首发于http://blog.csdn.net/candcplusplus,转载请注明出处... https://blog.csdn.net/shimachao/article/details/12746975---------------------------------------------------献给所有和我一样还没拿到office的同学------------...转载 2018-11-28 20:33:28 · 28654 阅读 · 0 评论 -
C++文件操作详解
C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来)打开文件(Open a file)对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件...转载 2018-11-30 17:02:45 · 28912 阅读 · 0 评论 -
c++对象创建带括号与无括号的区别
转载自:https://www.cnblogs.com/laogaoyang/p/5757453.html有些细节稍作补充:class Test{public: Test() {} Test(int a) {}}1、栈上创建对象 1.1 无括号 Test a; // 调用默认构造函数,栈上分配内存创建对象 1.2 有括号 Test a()...转载 2018-11-27 19:43:44 · 28681 阅读 · 0 评论 -
C++虚继承实现原理——解决菱形继承问题
首先给出以下继承关系,以便描述虚继承原理:class AAA{public: int age;};class BBB:virtual public AAA//变为虚继承,A变为虚基类{};class CCC:virtual public AAA{};class DDD:public BBB, public CCC{};通过vs中的开发人员命令提示窗口得到类...原创 2018-11-11 14:36:14 · 29080 阅读 · 0 评论 -
双递归(两个递归深入点)函数的执行顺序——分组问题为例
一.分组问题题目:用递归法计算从n个人中选选k个人组成一个委员会的不同组合数。 分析:由n个人里选k个人的组合数 = 由n-1个人里选k个人的组合数 + 由n-1个人里选k-1个人的组合数;当n = k或k = 0时,组合数为1。#include <iostream>using namespace std;/*双递归的执行过程,可以借助二叉树结构来描述*/int com...原创 2018-08-17 00:24:25 · 41465 阅读 · 4 评论 -
c++打印实心菱形
题目描述打印 n 阶实心菱形输入描述输入一个整数n,0 < n <= 10输出描述输出 n 阶实心菱形 , 占 2*n-1 行样例输入3样例输出 * ******** *** *#include "stdafx.h"#include <iostream>using namespace std;int main(...原创 2018-08-14 21:25:46 · 31712 阅读 · 0 评论 -
c++代码判断给定数字是否为丑数
题目描述只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数,另外1也不是丑数。请编写一个函数,输入一个整数n,能够判断该整数是否为丑数,如果是,则输出True,否则输出False。输入描述每行输入一个正整数 n1 <= n<= 1000000输出描述对于每一行输入,输出其是否为丑数,是则输出True,否则输出Fals...原创 2018-08-14 21:19:30 · 33425 阅读 · 0 评论