我有这样的功能:如何将同一个类中的两个值从一个函数传递给另一个函数?
void fraction::init()
{
cout<<"enter the values for the numerator and denominator\n";
cin>>num;
cin>>denom;
}
,我想在操纵他们另一个函数中使用这两个数字。 我该如何把他们带到这个其他功能? 注意:这两个函数都是相同的类。
我有这样的功能:如何将同一个类中的两个值从一个函数传递给另一个函数?
void fraction::init()
{
cout<<"enter the values for the numerator and denominator\n";
cin>>num;
cin>>denom;
}
,我想在操纵他们另一个函数中使用这两个数字。 我该如何把他们带到这个其他功能? 注意:这两个函数都是相同的类。
简单地将它们定义为类的成员:
class fraction {
private:
int num;
int denom;
public:
void init(); // has access to num and denom
void otherMethod(); // also has access to num and denom
};
你也应该不依赖于init()
被调用到初始化变量有默认值,你也应该不依赖于各种默认初始化由C++提供,参见Default variable value。
相反,添加一个构造函数,用于设置变量的默认值,以确保已创建类的对象之后,这些变量的合理值。然后,你仍然可以调用init()
设置任何你想要的值(也许你应该重新命名init()
为类似readValues()
,以反映该方法确实)。
这取决于你将如何使用这些功能。由于都属于同一类,可以使类num
和denom
(私有)的成员。但如果这些值来自课外,也可以使用引用。不管这将工作的属于同一类或没有的功能:
class fraction
{
public:
void init(int& num, int& denom) const;
void otherFunction(int num, int denom);
}
void fraction::init(int& num, int& denom) const
{
cout<<"enter the values for the numerator and denominator\n";
cin>>num;
cin>>denom;
}
// Define otherFunction() appropriately
然后在另一段代码使用这些功能:
// ...
int aNum, aDenom;
fraction fr;
fr.init(aNum, aDenom);
fr.otherFunction(aNum, aDenom);
// ...
要么让他们的类的成员,那么多建议,或者你可以尝试在需要时传递它们。如果你想让它们的值反映变化,请通过引用传递它们。
datatype function1(int *a, int *b)
然后当你由init调用它们()函数,
function1(&num, &denom)
希望这有助于
使用指针引用传递的这种方式是类似C,检查以前的答案的例子,知道如何正确地做它在C++ – Antonio
老实说,这个问题说明你缺乏依据关于类是如何工作的,应当使用因为,试着找一本好书。 – Antonio