
语言
文章平均质量分 57
C/C++
从一而终
这个作者很懒,什么都没留下…
展开
-
【无标题】C++内存布局
内核空间 环境变量 命令行参数 栈区 共享库加载区 堆区 .bss 未初始化 和 初始化为零 .data 初始化 .text 代码段(指令)原创 2023-08-30 19:35:24 · 170 阅读 · 0 评论 -
C++总结:C++中的const和constexpr
C++总结:C++中的const和constexpr2014-02-18 15:31付哲 阅读(14334) 评论(0)编辑收藏C++中的const可用于修饰变量、函数,且在不同的地方有着不同的含义,现总结如下。const的语义C++中的const的目的是通过编译器来保证对象的常量性,强制编译器将所有可能违背const对象的常量性的操作都视为error。对象的常量性可以分为两种:物理常量性(即每个bit都不可改变)和逻辑常量性(即对象的表现保持不变)。C++中采用的是...转载 2020-07-11 18:32:15 · 734 阅读 · 0 评论 -
C++11 constexpr
语义上:constexpr:告诉编译器我可以是编译期间可知的,尽情的优化我吧。const:告诉程序员没人动得了我,放心的把我传出去;或者放心的把变量交给我,我啥也不动就瞅瞅。语法上:constexpr是一种比const 更严格的束缚, 它修饰的表达式本身在编译期间可知, 并且编译器会尽可能的 evaluate at compile time. 在constexpr 出现之前, 可以在编译期初始化的const都是implicit constexpr. 直到c++ 11, constexpr才从con转载 2020-07-11 18:06:11 · 104 阅读 · 0 评论 -
C++子类显式调用父类的构造函数
#pragma once// 访问者模式class VisitorAge;class Element{public: Element(std::string name, int age, std::string sex) :m_name(name), m_age(age), m_sex(sex) { }; virtual ~Element() { } std::string getName() { return...原创 2020-07-10 07:56:50 · 1219 阅读 · 0 评论 -
std::lock_guard
是std::lock_guard。这东西是干什么的呢?它是与mutex配合使用,把锁放到lock_guard中时,mutex自动上锁,lock_guard析构时,同时把mutex解锁。把先看一段简单代码。#include <thread>#include <mutex> int g_i = 0;std::mutex g_i_mutex; // protects g_i void safe_increment(){ std::lock_guard...转载 2020-07-04 20:16:39 · 1024 阅读 · 0 评论 -
C1083: 无法打开包括文件: “QWebEngineView”: No such file or directory
解决:删除生成文件 重新编译解决原创 2020-07-02 14:35:01 · 4111 阅读 · 2 评论 -
C++ =delete =default
原文链接https://blog.youkuaiyun.com/lmb1612977696/article/details/80035487编译器默认为一个类生成的默认函数1。默认构造函数2。默认析构函数3。默认拷贝构造函数4。默认赋值函数5。移动构造函数6。移动拷贝函数class DataOnly {public: DataOnly () // default constructor ~DataOnly () ...转载 2020-06-22 19:04:05 · 309 阅读 · 0 评论 -
错误 LNK2005
严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2005 "class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::...原创 2020-05-13 14:13:06 · 2312 阅读 · 0 评论 -
LoadLibrary无法加载DLL可能原因
1 相对路径不对 绝对路径测试2 可能需要加_T转换LoadLibrary(_T("Cacl.dll"));3 32位的DLL 用64位加 报错(无法打开PDB文件)原创 2020-04-15 11:14:07 · 1477 阅读 · 0 评论 -
C++中临时对象的创建
在某些情况下,编译器需要创建临时对象。 可能会出于下列原因创建这些临时对象: • 使用一个不同于所初始化的引用的基础类型的类型的初始值设定项初始化 const 引用。 • 存储返回用户定义类型的函数的返回值。 仅当您的程序未将返回值复制到对象时,才会创建这些临时内存。 例如: 复制UDT Func1(); // Declare a function that returns a use原创 2015-05-25 14:13:43 · 875 阅读 · 0 评论 -
Traits 编程
一般现象:在算法中应用迭代器时,有时候会用到其所指对象的相应类型。 引出问题:假设算法中有必要声明一个变量,以迭代器所指对象的类型为类型,如何解决? 解决方法: 利用函数模板的参数推导技术(function template argument deducation) 例如: template原创 2015-05-24 10:23:20 · 437 阅读 · 1 评论