你如何处理来自不同类的私有变量

时间:2016-07-19 11:51:26

标签: c++

List<MyClass> a = JsonConvert.DeserializeObject<List<MyClass>>("[{some json}]")

此代码是使用cin输入qq的市场。

我可以更改void User :: buyApples(){ while(1){ cout<<"How many do you want to buy? Press 0 to quit.";cin>>qq; if(qq==0) return ; if(qq<= f.getnumofApples()){ if(salary>=(qq*200)){ invofApples+=qq; salary-=(qq*200); showsalary(); } else{ cout<<"Not enough money"<<endl; void homescreen(); } } else{ cout<<"There's not enough Apples in Stock"<<endl; continue; } } } 类中的薪水和私有变量。

但我还需要使用int User更改fruit类中的私有变量。如何更改numofApples

我似乎无法从User类更改变量。当我试图从水果类改变它时,qq不会延续。我该怎么办?

4 个答案:

答案 0 :(得分:3)

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

通过这种方式,您将保留变量的可见性

答案 1 :(得分:1)

您可以允许User类通过将其声明为Fruit的friend来访问Fruit类的私有变量,

class Fruit {
    friend class User;

    /* Rest of class */
}

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

答案 2 :(得分:1)

除非您发布UserFruit课程,否则无人可以回答。

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

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

答案 3 :(得分:1)

私人成员的目的是防止他们在您不希望他们访问时从外部访问。如果要允许访问,则必须为用户提供设置值的方法。以下是Fruit类上的setter方法的示例,该方法可以允许用户设置apple的数量。

void Fruit::setNumberOfApples(int newNumApples) 
{ 
    numofApples = newNumApples; 
}