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不会延续。我该怎么办?
答案 0 :(得分:3)
如果你想从另一个类访问私有变量,你应该在该类中实现一个公共方法,例如get / set方法。
通过这种方式,您将保留变量的可见性
答案 1 :(得分:1)
您可以允许User类通过将其声明为Fruit的friend
来访问Fruit类的私有变量,即
class Fruit {
friend class User;
/* Rest of class */
}
问题是,这真的是你想要的吗?私有变量通常用于不应被其他类更改的内容。
答案 2 :(得分:1)
除非您发布User
和Fruit
课程,否则无人可以回答。
在此之前,请考虑面向对象编程的内容:将数据和行为封装到软件组件中。类中私有变量背后的想法是您需要提供公共方法来更新它们。如果您不提供方法,则表示您不希望在类外部更改值。
将公共方法添加到拥有您要更改的变量的类中。在代码中调用那些要更新它们的方法。
答案 3 :(得分:1)
私人成员的目的是防止他们在您不希望他们访问时从外部访问。如果要允许访问,则必须为用户提供设置值的方法。以下是Fruit类上的setter方法的示例,该方法可以允许用户设置apple的数量。
void Fruit::setNumberOfApples(int newNumApples)
{
numofApples = newNumApples;
}