随笔分类 -  C/C++ / C++ Primer阅读

摘要:所谓特殊成员函数就是指在某些条件下,编译器会自动生成的一些成员函数: 默认构造函数 复制构造函数 析构函数 赋值运算符重载函数 移动构造函数(C++11及之后) 移动赋值运算符重载函数(C++11及之后) 规则 至于什么条件会自动生成,参见:Effective Modern Cpp ,反正我是记不太 阅读全文
posted @ 2025-04-25 14:44 thammer 阅读(56) 评论(0) 推荐(0)
摘要:在类中,如果你未显示定义下列一些函数,编译器会帮你自动生成它们的默认版本。 📌 一、编译器默认生成的六大函数 函数名称 触发条件 C++标准支持 默认构造函数 用户未定义任何构造函数时生成 C++98 析构函数 用户未定义时自动生成 C++98 复制构造函数 用户未定义时生成浅拷贝版本 C++98 阅读全文
posted @ 2025-04-17 15:16 thammer 阅读(78) 评论(0) 推荐(0)
摘要:什么是函数模板 C++的函数模板提供了一种方法,让编译器根据你写的模板,来自动按需生成函数。这个模板就称之为函数模板。函数模板格式如下: template <typename AnyType> void MyFunctionTemplate(AnyType &param) { } 这里AnyType 阅读全文
posted @ 2024-06-30 10:36 thammer 阅读(55) 评论(0) 推荐(0)
摘要:decltype引入的原因之一是在函数模板中遇到如下情形: template <typename T1, typename T2> void foo(T1 a, T2 b) { ?type? tmp = a + b; } 此时,tmp类型该定义为哪种呢?我们知道基础数据类型相加时会自动进行类型提升, 阅读全文
posted @ 2024-06-28 15:17 thammer 阅读(56) 评论(0) 推荐(0)
摘要:定义了一个类A,里面有个模板函数。因为我习惯每个类的声明和实现分开用*.h,*.cpp写。所以类A的源码如下: A.h #ifndef A_H #define A_H class A { public: A(); template <typename T> void fuck(T a); }; #e 阅读全文
posted @ 2024-06-28 10:55 thammer 阅读(69) 评论(0) 推荐(0)
摘要:转自 https://blog.csdn.net/boysoft2002/article/details/114263346 阅读全文
posted @ 2024-06-28 09:59 thammer 阅读(13) 评论(0) 推荐(0)
摘要:为什么要初始化成员 对于类成员是基础数据类型,例如int、char这些,构造对象时,成员不会被初始化,值是随机的。下面代码可以验证下: class A { public: A(){} void showMember() const { std::cout << "a:" << a << std::e 阅读全文
posted @ 2024-04-29 12:00 thammer 阅读(150) 评论(0) 推荐(0)
摘要:初级 1. 内存管理:需要在构造函数中分配内存给 ptr,并在析构函数中释放内存,以避免内存泄漏。 MyClass::MyClass() { ptr = new int; } MyClass::~MyClass() { delete ptr; } new delete, new[] delete[] 阅读全文
posted @ 2024-04-25 19:27 thammer 阅读(152) 评论(0) 推荐(0)
摘要:什么是函数重载 函数的重载能使我们定义多个同名函数,我们在调用时,编译器会根据函数特征标自动帮我们调用对应的函数。嗯,这个特性又是C++为了方便程序员,通过编译器帮我们干活,设计出来的一个东西。通过C和C++的对比,我们可以看到函数重载的这种特性是怎么提出来的。 实现原理 C的做法 假设我们使用C要 阅读全文
posted @ 2024-01-06 18:46 thammer 阅读(54) 评论(0) 推荐(0)
摘要:简介定义 C++默认参数指的是当函数调用中省略了实参时自动使用的一个值。写法如下: void foo(int a = 1) { } void foo(int a, int b=1, int c=1) { } 默认参数有两个规则, 规则一:从第一个出现默认参数的参数开始,后面的参数必须也指定默认参数 阅读全文
posted @ 2023-11-18 18:32 thammer 阅读(270) 评论(0) 推荐(0)