Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从不同的类处理私有变量 void用户::BuyApple(){ 而(1){ coutqq; 如果(qq==0) 返回; 如果(qq=(qq*200)){ 发票+=qq; 工资-=(qq*200); showsalary(); } 否则{ cout_C++ - Fatal编程技术网

C++ 如何从不同的类处理私有变量 void用户::BuyApple(){ 而(1){ coutqq; 如果(qq==0) 返回; 如果(qq=(qq*200)){ 发票+=qq; 工资-=(qq*200); showsalary(); } 否则{ cout

C++ 如何从不同的类处理私有变量 void用户::BuyApple(){ 而(1){ coutqq; 如果(qq==0) 返回; 如果(qq=(qq*200)){ 发票+=qq; 工资-=(qq*200); showsalary(); } 否则{ cout,c++,C++,您可以允许用户类通过将其声明为Fruit的朋友来访问Fruit类的私有变量,即 问题是,这真的是你想要的吗?私有变量通常用于不应该被其他类更改的东西。如果你想从另一个类访问私有变量,你应该在该类中实现一个公共方法,例如get/set方法 这样,您将保持变量的可见性除非您发布用户和水果类,否则没有人可以回答 在此之前,请思考面向对象编程是关于什么的:将数据和行为封装到软件组件中。类中私有变量背后的思想是,您需要提供公共方法来更新它们。如果不提供方法,则意味着您不希望在类外更改值 将公共方法添加到拥

您可以允许用户类通过将其声明为Fruit的
朋友来访问Fruit类的私有变量,即


问题是,这真的是你想要的吗?私有变量通常用于不应该被其他类更改的东西。

如果你想从另一个类访问私有变量,你应该在该类中实现一个公共方法,例如get/set方法


这样,您将保持变量的可见性

除非您发布
用户
水果
类,否则没有人可以回答

在此之前,请思考面向对象编程是关于什么的:将数据和行为封装到软件组件中。类中私有变量背后的思想是,您需要提供公共方法来更新它们。如果不提供方法,则意味着您不希望在类外更改值


将公共方法添加到拥有要更改的变量的类中。在代码中要更新这些方法的地方调用这些方法。

私有成员的目的是在不希望外部访问它们时阻止外部访问它们。如果要允许访问,则必须为用户提供一种设置值的方法。H下面是一个关于Fruit类的setter方法的示例,该方法允许用户设置苹果的数量

class Fruit {
    friend class User;

    /* Rest of class */
}

这就是
private
variables的全部要点-不允许从类外修改这些变量。如果您想更改这些变量的值,请为此创建公共方法,或将这些变量公开。但为什么水果店会让客户设置其库存编号?自助结帐?可能是“setter”如果这是setter中的全部内容,那么为什么不将其公开?通过将其放入getter和setter,您可以在一定程度上控制其修改方式。
class Fruit {
    friend class User;

    /* Rest of class */
}
void Fruit::setNumberOfApples(int newNumApples) 
{ 
    numofApples = newNumApples; 
}