gpt4 book ai didi

c++ - 在 const 方法中调用非 const 方法

转载 作者:行者123 更新时间:2023-11-30 03:14:29 28 4
gpt4 key购买 nike

<分区>

#include <iostream>
#include <memory>

class B
{
public:
B(){}

void g() { }
};

class A
{
public:
A()
{
ptr_ = std::make_shared<B>();
}

void f() const
{
ptr_->g(); // compile
//obj_.g(); // doesn't compile as expected
}

std::shared_ptr<B> ptr_;
B obj_;
};

int main()
{
A a;
a.f();
}

令我惊讶的是这段代码构建良好。在 A::f() 中,我调用了数据成员的非常量方法。当此数据成员是它构建的指针时,如果它不是指针,则不会按预期构建,因为 B::g() 是非常量。

你明白为什么我可以在 const 函数中调用非常量函数吗?

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