关于C++中的“类中的特殊成员函数” - 指南

关于C++中的“类中的特殊成员函数”

所谓“类中的特殊成员函数”,包括构造函数、析构函数、拷贝函数、拷贝构造函数、拷贝赋值函数、移动构造、移动赋值、取地址符重载、常取地址辅重载。

他们特殊的原因是:(1)这些函数无需程序员手动定义,系统会默认提供,如果程序员手动定义了,那么系统就会取消默认提供。(2)这些函数无需手动调用,在特定情况下会自动调用,即使是程序员手动定义了这些函数。

相关代码(包含构造函数、析构函数、拷贝构造函数、拷贝赋值函数)

#include 
using namespace std;
class Per
{
private:
    //Per的私有成员:姓名、年龄、身高、体重
    string name;
    int age;
    double *high;
    double *weight;
public:
    //Per的无参构造函数
    Per():high(nullptr),weight(nullptr)
    //Per():high(new double(0)), weight(new double(0))
    {
        cout<<"Per::午餐狗"<

运行结果

写代码时遇到的问题

FTH: (17944): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***
错误原文·参考机翻
致命:启动Qt事件循环失败。应用程序当前正在崩溃。这通常是由于之前的崩溃造成的。

结合代码书写过程来看,问题可能是:(1)初版代码使用了浅拷贝;(2)空指针的错误解引用;(3)拷贝构造函数时错误的用了无参构造的s1。(改到现在这一版代码后错误消失了,并不确定问题出现原因,浅举三种可能的原因,望指正)

思维导图

posted @ 2025-10-28 15:26  gccbuaa  阅读(3)  评论(0)    收藏  举报