gpt4 book ai didi

c++ - 这个析构函数在 C++ 中有效吗?

转载 作者:太空狗 更新时间:2023-10-29 19:54:34 25 4
gpt4 key购买 nike

  1. String::~String() {
    std::cout<<"String()" <<std::endl;
    }

    我想知道这个析构函数的实现是否有效?

  2. 还有一个关于 const 成员函数限定符的问题,我知道 const 函数不能更改此类中的变量,它只是只读的。如果没有其他奇怪的问题,我想我能理解,但是我看到了一些问题如下:

    • 它允许为this指向的对象调用非常量成员函数

    • 保证只能改变this指向的对象的可变成员变量

    • 它确保所有常量保持不变

    • 防止继承

    • 它允许改变this指向的对象的状态

根据我的理解,很难判断哪一个是对的,所以我猜他们都是错的?

最佳答案

  1. 从技术上讲,析构函数只是另一个函数,在我看来这个析构函数在语法上没有任何错误,所以它似乎是有效的

  2. 这就是 const 成员函数的全部内容,您不能修改数据。这些函数由类的 const 实例自动调用。因此,如果您有两个具有相同签名的函数,除了 const-ness,它将为 const 实例选择 const 版本,而对于非 const 实例,这将取决于您如何使用它来确定调用哪个版本

    a) 不能在 const 成员函数中调用非 const 成员函数

    b)正确

    c) 正确

    d) 我不确定你所说的防止继承是什么意思。如果您将一个函数声明为虚函数,无论是否为常量,它都会被继承并且可以被子类覆盖

    e) 在 const 成员函数中,所有数据都被认为是 const,除非声明为可变的。

关于c++ - 这个析构函数在 C++ 中有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com