gpt4 book ai didi

c++ - 为什么可以在常量结构上调用非常量成员函数?

转载 作者:行者123 更新时间:2023-11-30 02:04:44 25 4
gpt4 key购买 nike

下面的程序可以编译(使用 gcc),但是应该编译吗?我本以为下面创建的 V1(1.0) 是一个常量,因此无法在其上调用非 const 方法。

class V{
double v;
public:
V(double v1){ v = v1;}
void clear(){ v = 0;}
};

int main(){
V(1.0).clear();
}

将此与不能称为“f(1)”的函数“void f(int &t){}”进行比较,因为 1 是一个常量,不能作为非常量引用 t 的值。

最佳答案

V(1.0) 调用构造函数,它通过复制 初始化double v1。所以你有一个带有文字拷贝的临时文件。

关于c++ - 为什么可以在常量结构上调用非常量成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10297103/

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