随笔分类 -  c++ primer

C++ : 如何用C语言实现C++的虚函数机制?
摘要:前言 在 googletest的源码中,看到gtest-matchers.h 中实现的MatcherBase 类自定义了一个 VTable,这种设计实现了一种类似于C++虚函数的机制。C++中的虚函数机制实质上就是通过这种方式实现的,本文用c语言自定义虚函数表VTable实现了一下virtual的功 阅读全文

posted @ 2024-06-30 21:27 七昂的技术之旅 阅读(307) 评论(0) 推荐(0)

C++: 虚函数,一些可能被忽视的细节
摘要:C++: 虚函数,一些可能被忽视的细节 引言:关于C++虚函数,对某些细节的理解不深入,可能导致我们的程序无法按预期结果运行,或是表明我们对其基本原理理解不够透彻。本文详细解答以下几个问题:实现多态,忘记写virtual会怎么样?虚函数的默认参数可以重载吗?纯虚函数真的不能有实现吗?析构函数可以是纯 阅读全文

posted @ 2024-03-31 13:45 七昂的技术之旅 阅读(321) 评论(0) 推荐(0)

为什么在 C++ 中,类的静态成员变量需要在源文件中进行定义?
摘要:# 为什么在 C++ 中,类的静态成员变量需要在源文件中进行定义? 类的静态成员变量需要在源文件中进行定义,以便在链接阶段能够正确地分配内存并为其分配地址。 当你在类的头文件中声明一个静态成员变量时,这只是告诉编译器该变量存在,并将在某处定义。这是因为头文件通常被包含在多个源文件中,如果在头文件中进 阅读全文

posted @ 2023-06-28 19:25 七昂的技术之旅 阅读(381) 评论(0) 推荐(0)

C++ getline整行读入以及使用stringstream 按分隔字符split出单词
摘要:问题:直接通过while(cin>>str), 遇到空格就会停止。比如,输入dfah adfj djfak只能输入前两个单词。 解决: 要读入一整行,需通过getline(cin, inputLine)读入。 按分隔符split字符串,使用getline(stringstream, string, 阅读全文

posted @ 2023-02-20 15:36 七昂的技术之旅 阅读(839) 评论(0) 推荐(1)

Effective C++ Item 3 ——尽可能使用const;const成员函数如何改变类的成员变量
摘要:C++ const 一、 语义约束 一个特定的对象不应该被修改,即是只读的。 二、用法 1. 修饰全局范围或命名空间内的静态对象 2. 修饰类的静态或非静态成员 3. 修饰指针或指针指向的数据 const出现在星号左边,则指针所指的内容为只读的。 const出现在星号右边,则指针自身为只读的。 co 阅读全文

posted @ 2023-02-05 22:33 七昂的技术之旅 阅读(273) 评论(0) 推荐(0)

c++ push_back()和emplace_back()区别
摘要:c++ push_back()和emplace_back()区别 References C++中push_back和emplace_back的区别 push_back v.s. emplace_back 一、源码分析 ###(1)push_back()定义 // stl_vector.h templ 阅读全文

posted @ 2022-03-02 21:47 七昂的技术之旅 阅读(571) 评论(0) 推荐(0)

c++11 动态内存与智能指针详解
摘要:c++ 动态内存与智能指针详解 一、 动态内存 (一)程序对象的生存期 全局对象在程序启动时分配,在程序结束时销毁。 对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。 局部static对象在第一次使用前分配,在程序结束时销毁。 C++还支持动态分配对象。动态分配的对象的生存期 阅读全文

posted @ 2022-03-01 23:34 七昂的技术之旅 阅读(275) 评论(0) 推荐(0)

c++对象的生命周期
摘要:参考链接:https://juejin.cn/post/6844904152833753096 1. 程序对象的生存期 全局对象在程序启动时分配,在程序结束时销毁。 对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。这个过程由栈自动完成。 局部static对象在第一次使用前分配 阅读全文

posted @ 2022-03-01 22:38 七昂的技术之旅 阅读(561) 评论(0) 推荐(0)

c++ 命名的强制类型转换
摘要:显式转换:显式将一种类型转换为另一种类型。 References: C++中的显示数据类型转换 与命名的强制类型转换相比,旧式的强制类型转换从表现形式上来说不那么清晰明了,容易被看漏,所以一旦转换过程出现问题,追踪起来也更加困难。 C++ 引入新的强制类型转换机制,主要是为了克服C语言强制类型转换的 阅读全文

posted @ 2022-01-10 16:21 七昂的技术之旅 阅读(193) 评论(0) 推荐(0)

导航