随笔分类 -  C++

摘要:友元(突破 private 限制) 友元函数 只要让函数 func 成为类 Men 的友元函数,那么 func 这个函数就能够访问类 Men 的所有成员(成员变量、成员函数),private、protected 总结: 友元函数 func(。。。) 是个函数,通过声明为某个类 Men 的友元函数,它 阅读全文
posted @ 2024-10-27 17:00 爱新觉罗LQ 阅读(36) 评论(0) 推荐(0)
摘要:多态 基类指针 // 父类指针可以 new 一个子类对象 Human *pman = new Man(); Human *pwman = new Wonan(); 抛出问题:父类指针没有办法调用子类的成员函数,那么你为什么还让父类指针 new 一个子类对象呢? 下面与虚函数搭配 虚函数(动态绑定) 阅读全文
posted @ 2024-10-26 00:56 爱新觉罗LQ 阅读(31) 评论(0) 推荐(0)
摘要:派生类 1. 派生类 2. 派生类对象定义时调用构造函数的顺序 Man man; 3. public、protected、private 4. 函数遮蔽 子类中强制调用父类的方法 方法一 方法二 子类中使用 using C++11:让父类同名函数在子类中可见 // 只能指定函数名,则凡是基类中的 p 阅读全文
posted @ 2024-10-22 01:05 爱新觉罗LQ 阅读(18) 评论(0) 推荐(0)
摘要:重载运算符、析构函数 1. 重载运算符 2个对象进行 == 比较,重载 == 运算符 说白了,就是,写一个成员函数,这个成员函数名 "operator==",这个成员函数体里边写一些比较逻辑 // 定义 Time& operator=(const Time& tmpobj) // 实现 Time& 阅读全文
posted @ 2024-10-20 19:03 爱新觉罗LQ 阅读(35) 评论(0) 推荐(0)
摘要:类内初始化、默认初始函数、=default; 类相关非成员函数 类内初始化 const成员变量的初始化 默认构造函数 =default;,=delete 阅读全文
posted @ 2024-10-15 00:49 爱新觉罗LQ 阅读(14) 评论(0) 推荐(0)
摘要:inline、const、mutable、this、static 在类定义中实现成员函数 incline 成员函数末尾的 const(声明和实现中都要加上 const) 作用:告诉系统,这个成员函数不会修改该对象里任何成员变量的值等等,也就是说,这个成员函数不会修改类 Time的任何状态。 > 也叫 阅读全文
posted @ 2024-10-13 23:58 爱新觉罗LQ 阅读(35) 评论(0) 推荐(0)
摘要:C++类 类 // public 成员提供类的接口,暴漏给外界,供外界使用 // private:提供各种实现类功能的细节方法,但不暴漏给使用者,外界无法使用 // 注意:struct 是成员默认为 public 的 class、class 成员默认是 private class student{ 阅读全文
posted @ 2024-10-09 22:04 爱新觉罗LQ 阅读(14) 评论(0) 推荐(0)
摘要:类型转换 1. static_cast(静态转换) 编译的时候就会进行类型转换,代码中要保证转换的安全性和正确性 可用于: 相关类型转换,比如:整型和实型之间的转换 子类型转成父类类型(向上转型) void * 与其它类型指针之间的转换(void *:无指针类型,可以指向任何指针类型(万能指针)) 阅读全文
posted @ 2024-10-07 23:57 爱新觉罗LQ 阅读(33) 评论(0) 推荐(0)
摘要:迭代器 iterator 迭代器遍历 Vector vector<int> vec = {100, 200, 300}; vector<int>::iterator iter; // 定义迭代器 // 迭代器 begin() / end(),反向迭代器 rbegin() / rend() int m 阅读全文
posted @ 2024-09-27 00:30 爱新觉罗LQ 阅读(15) 评论(0) 推荐(0)
摘要:Vector 定义和初始化 // 方式 1 vector<string> mystr; mystr.push_back("abc"); mystr.push_back("def"); // 方式 2:元素拷贝的初始化方式 vector<string> mystr2(mystr); vector<st 阅读全文
posted @ 2024-09-25 00:39 爱新觉罗LQ 阅读(14) 评论(0) 推荐(0)
摘要:String 类型 判空 (empty()) string s; if (s.empty()) 长度【size() / length()】 s.c_str():返回一个字符串的内容指针 这个函数的引入是为了与c语言兼容,在 c 语言中没有 string 类型,所以我们得通过 string 类对象的 阅读全文
posted @ 2024-09-23 00:01 爱新觉罗LQ 阅读(8) 评论(0) 推荐(0)
摘要:函数新特性、内联函数、const详解 函数新特性 函数回顾与后置返回类型 // 1. 前面放 auto,标识函数返回类型放到参数列表之后 // 2. 而放在参数列表之后的返回类型是通过 -> 开始的 auto func(int a, int b) -> void 内联函数 函数定义前加 inclin 阅读全文
posted @ 2024-09-17 23:33 爱新觉罗LQ 阅读(34) 评论(0) 推荐(0)
摘要:结构、权限修饰符、类 结构(struct:自定义的数据结构) struct student { // 成员变量 int number; char name[100]; void func(){ // 成员函数(方法) number++; } }; // 1. 形参为引用 void func1(stu 阅读全文
posted @ 2024-09-17 12:13 爱新觉罗LQ 阅读(15) 评论(0) 推荐(0)
摘要:范围 for,new 内存动态分配,nullptr 范围 for int main() { int arr[] = {11, 12, 13, 14, 15}; for (auto x : arr){ // 问题所在:需要将 arr 中的每一个都拷贝到 x 中去 > 节省拷贝的方法:使用指针,提升效率 阅读全文
posted @ 2024-09-16 19:04 爱新觉罗LQ 阅读(14) 评论(0) 推荐(0)
摘要:auto、头文件防卫、引用、常量 auto:变量的自动类型推断 auto 可以在声明变量时根据变量初始值的类型自动为此变量选择匹配的类型(声明时要赋予初值) auto自动类型推断发生在编译期间所以不会造成程序效率降低 头文件防卫式声明 // #ifdef, ifndef 条件编译 // #ifnde 阅读全文
posted @ 2024-09-08 23:52 爱新觉罗LQ 阅读(41) 评论(0) 推荐(0)
摘要:命令空间(namespace) 用于解决同名实体: 同名函数 同名变量 同名的类定义 防止名字冲突而引入的一种机制。系统中可以定义多个命名空间,每个命名空间都有自己的名字,不可以同名 可以看成一个作用域 命名空间的定义 # 类似 java 中包的概念:在不同 cpp 文件中创建同名的方法等 name 阅读全文
posted @ 2024-09-07 19:31 爱新觉罗LQ 阅读(39) 评论(0) 推荐(0)
摘要:C++ Mincrosoft的中文文档 1. weak_ptr https://learn.microsoft.com/zh-cn/cpp/cpp/how-to-create-and-use-weak-ptr-instances?view=msvc-170 2. unique_ptr 3. shar 阅读全文
posted @ 2024-09-01 12:51 爱新觉罗LQ 阅读(21) 评论(0) 推荐(0)
摘要:指针函数 和 函数指针 指针函数(Function Returning a Pointer) > 返回一个指针 指针函数是返回指针的函数。也就是说,这种函数的返回类型是一个指针。 定义和使用 指针函数的返回类型是一个指针类型 通过函数调用,返回一个指针 Demo #include <iostream 阅读全文
posted @ 2024-08-26 00:53 爱新觉罗LQ 阅读(86) 评论(0) 推荐(0)
摘要:typedef 指针定义 #include <iostream> #include <string> #include <vector> using namespace std; typedef unsigned int UInt32; // 1. 简化类型 typedef float Real; 阅读全文
posted @ 2024-08-25 10:45 爱新觉罗LQ 阅读(10) 评论(0) 推荐(0)
摘要:OOP 1. 继承 基类(base) 派生类(derived) 派生类需要访问的基类的成员:在基类中用 protected 来修饰 虚函数(Virtual) 基类希望派生类各自定义自己合适的版本 基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作也是如此 阅读全文
posted @ 2024-08-20 00:31 爱新觉罗LQ 阅读(14) 评论(0) 推荐(0)