
C++
文章平均质量分 81
凌晨四点起,海棠花未眠
iOS开发、嵌入式开发
展开
-
Person类与Employee 类的多态实现
有一个基类Person类,包含了私有成员姓名和职业。有若干派生类Employee类,继承了该类。要求用虚函数实现Person类的多态性。本示例演示了如何使用基类(Person)与派生类(Employee)来实现多态性。Person类包含了人的基本信息,如姓名和职业,而Employee类则继承了Person类,并增加了员工ID的属性。通过使用虚函数(printInfo)和虚析构函数,我们实现了多态性,并确保了派生类对象的正确析构。原创 2024-06-05 19:10:40 · 295 阅读 · 0 评论 -
C++ 智能指针(修订版)
智能指针是C++标准库提供的一种用于自动化内存管理的工具。它通过RAII(Resource Acquisition Is Initialization)机制,确保在对象生命周期结束时自动释放资源,避免内存泄漏和悬空指针等问题。原创 2024-06-05 19:08:54 · 371 阅读 · 0 评论 -
C++拷贝构造函数和移动构造函数(修订版)
拷贝构造函数是用来创建一个对象,该对象是使用另一个同类型的对象初始化的。移动构造函数用于通过“移动”资源来构造一个新的对象,而不是复制。在C++中,拷贝构造函数和移动构造函数是对象管理的重要部分。理解并正确使用它们可以显著提升程序的性能和可靠性。希望通过本教程,你能够更好地掌握这两个构造函数的使用技巧。原创 2024-06-05 19:07:53 · 523 阅读 · 0 评论 -
C++继承与构造函数
当基类和派生类存在同名成员时,可以通过类名来进行区分。可以通过类名来区分它们,例如在主函数中使用。原创 2024-06-05 19:06:47 · 857 阅读 · 0 评论 -
C++构造函数和拷贝构造函数
这行代码在标准C++中是有效的,但由于它涉及到一个内部的临时对象,它实际上会触发拷贝初始化。然而,由于拷贝构造函数通常是私有的(在某些类中),该代码通常不会出现在实际的代码中,除非拷贝构造函数是公开的。然而,由于C++17之前的编译器优化(称为“拷贝省略”或“RVO”),在这种情况下可能不会实际调用拷贝构造函数,而是直接使用直接初始化的结果来构造。在C++中,构造函数和拷贝构造函数是两种特殊的成员函数,它们在对象的创建和初始化时起着至关重要的作用。是通过拷贝初始化来创建的,因此会调用拷贝构造函数。原创 2024-06-01 20:52:27 · 647 阅读 · 0 评论 -
C++友元函数和友元类
定义友元函数是一种非成员函数,但它可以访问类的私有(private)和保护(protected)成员。友元函数是通过在类定义中声明为friend来指定的。特点非成员函数:友元函数不是类的成员函数,因此它没有this指针。访问权限:友元函数可以访问类的私有和保护成员。声明位置:友元函数的声明可以在类的私有、保护或公有部分进行,但通常建议放在类的私有部分,以强调它不是类的正常接口。定义位置:友元函数的定义可以在类定义内部或外部进行。如果定义在类外部,则不需要使用类的作用域解析运算符(用途。原创 2024-06-01 16:31:34 · 399 阅读 · 0 评论 -
C++懒汉和饿汉单例设计模式
不过,在单线程环境中,或者你确定在多线程环境中不会有问题的情况下(例如,你控制了单例的访问,并确保它在任何时间点只被一个线程访问),这种简单的懒汉式单例是可以接受的。而在懒汉式中,由于对象的创建是延迟的,所以需要使用指针来表示对象可能尚未存在的情况。在饿汉式单例模式中,单例对象在程序开始时或在单例类首次被加载到内存中时就被创建,因此不存在线程安全问题,因为静态初始化在多线程环境中是安全的。在饿汉式单例模式中,单例对象的生命周期通常与程序的生命周期相同,因此,在大多数情况下,你并不需要显式地销毁它。原创 2024-06-01 10:22:32 · 784 阅读 · 0 评论 -
using namespace std是什么
是 C++ 编程语言中的一个指令,它用于告诉编译器在接下来的代码块中,可以直接使用std(标准)命名空间中的名称,而不需要每次都加上前缀。std是 C++ 标准库(Standard Library)的命名空间。标准库包含了一组非常有用的函数、对象、类、模板等,用于处理常见的编程任务,如输入/输出、字符串处理、容器类(如向量、列表、映射等)、算法等。例如,如果你没有使用,那么当你想要使用标准库中的cout对象来输出文本时,你需要写std::cout。但是,如果你已经写了,那么你就可以直接写cout了。原创 2024-05-30 19:53:24 · 1952 阅读 · 0 评论 -
引用(reference)和指针(pointer)
这种能力使得引用成为一种非常强大的工具,但也需要小心使用,以避免生命周期问题(如返回局部变量的引用)和不必要的副作用。指针常量是指一个指针,它自身的地址是常量,即这个指针一旦被初始化,就不能再指向其他的地址。但是,你可以通过这个指针来修改它所指向的数据的值(如果该数据不是常量的话)。在C++中,引用(reference)和指针(pointer)都是用于间接访问和操作其他变量的机制,但它们之间存在一些重要的区别。是一个全局变量,它的生命周期与程序的生命周期相同,所以返回的引用是安全的。原创 2024-05-29 17:32:44 · 1149 阅读 · 0 评论