gpt4 book ai didi

c++ - 为什么访问同一个类的私有(private)成员时会编译出错

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:29 24 4
gpt4 key购买 nike

为什么这个程序会出现编译错误:

proxy.cpp: 在成员函数‘void ProxyCar::MoveCar()’中:proxy.cpp:59: 错误:'int Driver::age' 是私有(private)的proxy.cpp:81: 错误:在此上下文中

class Car
{
public:
void MoveCar()
{
cout << "Car has been driven";
}
};

class Driver
{
private:
int age;

public:

int get() { return age; }
void set(int value) { age = value; }
Driver(int age):age(age){}
};

class ProxyCar
{
private:
Driver driver;
Car *realCar;

public:
ProxyCar(Driver driver): driver(driver), realCar (new Car) {}

void MoveCar()
{
if (driver.age <= 16)
cout << "Sorry the driver is too young to drive";
else
realCar->MoveCar();
}
};

int main()
{
Driver d(16);
ProxyCar p(d);
p.MoveCar();
return 0;
}

我正在尝试访问 ProxyCar 中的 Driver 对象。此行导致错误。 如果(司机年龄 <= 16)

最佳答案

因为 ageDriver 类中的私有(private)成员。

你打算这样做吗:

     if (driver.get()<= 16)
cout << "Sorry the driver is too young to drive";
else
realCar->MoveCar();

关于c++ - 为什么访问同一个类的私有(private)成员时会编译出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629420/

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