C/C++
文章平均质量分 51
c/c++注意点
qq_43478653
学生
展开
-
【Qt】元属性内存管理探究及QObject&QMetaObject关系
通过上方的查看。可以验证元属性系统,是通过额外的、存储于QObject中的数据结构,进行存储的。这个数据结构,通过线性结构,存储name和value,以实现动态属性系统。基本验证猜想1。通过实验,也可以知道。用Q_PROPERTY声明的属性,会自动添加到DynamicProperty中,也即上方的线性存储结构中。原创 2023-03-03 21:15:05 · 796 阅读 · 0 评论 -
【Qt5】Qt QWidget立刻出现并消失
qt qwidget生成后立即消失解决方案原创 2022-06-11 10:32:03 · 692 阅读 · 0 评论 -
C++ 泛型矩阵 的 运算符重载
目的泛型为了实现int、double等矩阵的运算。问题运算符重载时,两个不同类型、行数、列数的矩阵如何实现用泛型记录类型?这里采用模板+友元函数的方式实现。代码#include <iostream>#include <vector>using namespace std;template<typename T, int r, int c>class TMatrix{public: TMatrix() : row(r), colu原创 2021-09-12 12:03:50 · 241 阅读 · 0 评论 -
[c++][源码]glibc-1.09中malloc()源码、实现机制理解、与广泛流传版本的区别
库&文件glibc-1.09、\glibc-1.09.1\malloc\malloc.c、\glibc-1.09.1\malloc\malloc.h.源代码malloc.h/* Declarations for `malloc' and friends. Copyright 1990, 1991, 1992, 1993 Free Software Foundation, Inc. Written May 1989 by Mike Haertel.This librar原创 2021-06-23 22:36:29 · 733 阅读 · 0 评论 -
【记录】C++异常catch块中引用捕获与非引用捕获的区别
测试程序#include <iostream>using namespace std;class A{public: A() {cout<<"A construct."<<endl;} char* what(){ return "A::func1";}};class B : public A{public: B() {cout<<"B construct."<<endl;} char* wha原创 2021-06-19 16:46:40 · 322 阅读 · 0 评论 -
【记录】无法解析的外部符号 _main,函数 “int __cdecl invoke_main(void)“ (?invoke_main@@YAHXZ) 中引用了该符号
项目场景:Visual Studio2019、控制台应用。问题描述:项目生成时报错:无法解析的外部符号 _main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号原因分析:项目设置问题。解决方案:...原创 2021-06-17 22:53:34 · 3099 阅读 · 0 评论 -
【踩坑】c++ priority_queue采用i < p.size()遍历,无法遍历完全
前言:我们遍历容器时,一般可以采用迭代器控制变量i < size判empty()但是,如果采用第二种方式遍历c++ priority_queue时,会出现无法遍历完整的问题。代码:参考如下代码。该代码实现数组A与B的合并,采用priority_queue的堆排序实现。在将排序后数据从priority_queue重新拷贝到数组A中时,会发现只会遍历一次的错误。#include <bits/stdc++.h>using namespace std; void me原创 2021-06-13 21:15:53 · 1629 阅读 · 1 评论 -
【实验】mingw32 C++虚函数多继承时Vtable表个数、摆放位置,及Vtable表内虚函数摆放情况
环境Qt5.14/Tools/mingw730_64/bin/mingw32-make.exe记录第一步 B的基类继承顺序变为先A1,再A2代码如下:#include <iostream>using namespace std;class A1{public: virtual void func1(){cout<<"A1::func1"<<endl;} virtual void func2(){cout<<"A1::fu原创 2021-06-07 19:01:53 · 152 阅读 · 0 评论 -
2021-06-05【记录】普通extern函数在在多文件执行过程中,只维持一份函数,不会复制多个函数。
原创 2021-06-05 21:53:27 · 55 阅读 · 0 评论 -
【实验】使用gcc、g++,编译带和不带extern C的C/C++混合代码,并查看编译、链接结果
材料1. a.cppextern "C"{#include "b.h"}int main(){ int c = Foo(2, 4); return 0;}2. b.h#ifndef _B_H#define _B_Hint Foo(int a, int b);#endif3. b.c#include "b.h"int Foo(int a, int b){ static int c = 1; return (a > b) ? a : b;}记录1.原创 2021-06-01 08:23:32 · 667 阅读 · 1 评论 -
【c++】重载多继承同名父类虚函数,派生类vtable指向不同重载虚函数位置
目的:A1和A2类中有同名函数func1(),两者派生出类B。现在类B重载了func1(),现证明B中两个vtable中func1()指向新的不同位置,而不是新的相同位置。也即生成了两份重载函数。过程:测试程序#include <iostream>using namespace std;class A1{public: virtual void func1(){cout<<"A1::func1"<<endl;} virtual v原创 2021-05-27 11:05:24 · 730 阅读 · 0 评论 -
【记录】在Linux运行C++网络编程CGI
过程在Linux下下载Apache服务器参考【1】。开放端口并检测参考【2】。其中开启80端口后,可以通过netstat -anlp | grep 80查看80端口开放情况。【3】3. Linux下C++文件操作在Linux下的/var/www/cgi-bin下,编写C++程序,#include <iostream>using namespace std; int main (){ cout << "Content-typ原创 2021-04-18 23:34:16 · 180 阅读 · 0 评论 -
【记录】在Windows上使用MinGW.Thread.h等文件测试C++11多线程;及异常解方:error To use the MinGW-std-threads library;
环境Window10, MinGW。注意:如果要使用C++11版本的编译器,需要在下载的MinGW中加入一些头文件,因为MinGW提供的编译器目前缺少有关Thread的头文件【1】。你可以在Gitee或者Github上搜索关键词mingw-std-threads,相关资源都可以使用。我使用的提取地址如下:https://gitee.com/CreateMe/mingw-std-threads在此感谢资源提供者!将包中的头文件放入MInGW的如下位置,C:\MinGW\lib\gcc\mi原创 2021-04-01 12:00:54 · 2087 阅读 · 1 评论 -
【异常记录】C++:error: invalid initialization of non-const reference of type ‘my_vector<int>::my_iterator&
背景在处理C++/STL,自己实现部分vector及其iterator迭代器时,出现的异常,信息如下:error: invalid initialization of non-const reference of type 'my_vector<int>::my_iterator&' from an rvalue of type 'my_vector<int>::iterator {aka my_vector<int>::my_iterator}'解决方案原创 2021-03-26 17:52:02 · 575 阅读 · 0 评论 -
Codeblocks写C报错lvalue required as left operand of assignment
主要原因是左边值数据类型与右边不相同。比如1 左边是int,右边是int*2 左边是char*,右边是int等。我这里遇到,是因为函数指针,写成返还指针的函数了。原创 2020-12-11 20:44:24 · 1990 阅读 · 0 评论 -
CodeBlocks signal received的一种解决方法
1 遇到问题Codeblocks, windows10上,运行时报错,如下图。2 解决方案1 找到问题,发现是没有返回流所引起的问题。根据网上解答,可能是cout没有返回,导致的无法找到输出指针。2 解决问题,返回out这个输出流。3 最后解决问题。3 参考解答https://zhidao.baidu.com/question/560487574.htmlhttps://zhidao.baidu.com/question/368278853629978444.html?qbl=rela原创 2020-12-06 10:19:22 · 316 阅读 · 0 评论 -
MFC显示进度条时间
void CGameDig::DrawGameTime(){// 获取DCCClientDC dc(this);CString num;CSize size = 0; // 文本内容大小int nPos; // 进度条值// 创建字体//CFont myFont = CreatePointFont(120.40,0,0);CFont myFont;myFont.CreatePointFont(320, _T("隶书"));// 将字体选入设备描述表,并保存原来的字体C原创 2020-07-21 17:14:55 · 396 阅读 · 0 评论