gpt4 book ai didi

c++ - 从子类方法访问基类变量

转载 作者:可可西里 更新时间:2023-11-01 17:10:54 25 4
gpt4 key购买 nike

如何从子方法访问基类变量?我遇到了段错误。

    class Base
{
public:
Base();
int a;
};

class Child : public Base
{
public:
void foo();
};

Child::Child() :Base(){

void Child::foo(){
int b = a; //here throws segmentation fault
}

在另一个类中:

    Child *child = new Child();
child->foo();

最佳答案

将类变量公开不是一个好习惯。如果你想从 Child 访问 a 你应该有这样的东西:

class Base {
public:
Base(): a(0) {}
virtual ~Base() {}

protected:
int a;
};

class Child: public Base {
public:
Child(): Base(), b(0) {}
void foo();

private:
int b;
};

void Child::foo() {
b = Base::a; // Access variable 'a' from parent
}

我也不会直接访问a。如果您为 a 创建一个 publicprotected getter 方法会更好。

关于c++ - 从子类方法访问基类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187020/

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