我已经阅读了关于课程以及私人和公共工作的方式,但我仍然对如何实施它们感到难过。
我尝试做的是将2个整数从main传递给用户为行和列定义的私有类。然后使用行和列,2d数组用0到row * column-1的整数填充,并保存在private内的函数中。
最后,它由公众中的一个函数初始化。
我的问题是如何将2个整数从主要传递给私有?我是否必须在公众场合这样做?如果是这样的话?
#include <vector>
class Example {
public:
void displayArray() {
for (int row = 0; row < T_array.size(); ++row) {
for (int col = 0; col < T_array[row].size(); ++col) {
// print stuff
}
}
}
private:
void fillArray(int rows, int columns) {
T_array.resize(rows);
for (int row = 0; row < rows; ++row) {
T_array[row].resize(columns);
for (int col = 0; col < columns; ++col) {
T_array[row][col] = ...
}
}
}
std::vector<std::vector<int>> T_array; // Nested vector for 2D
}
答案 0 :(得分:0)
我的问题是如何将2个整数从主要传递给私有?我是否必须在公众场合发挥作用?
是的,您必须使public
能够从main()
调用类成员函数。
如果是这样怎么样?
喜欢这样
public: // Or just omit the private
void fillArray(int rows, int columns) {
// ...
}
您的成员变量可以保留private
(如果这应该是您关注的话):
private:
std::vector<std::vector<int>> T_array; // Nested vector for 2D
答案 1 :(得分:0)
私有数据只能由同一类的方法修改,因此您可以选择:
您的选择取决于其余代码的结构。
答案 2 :(得分:0)
您无法从类外部访问私有类成员,这是私有的。 (我知道,朋友们可以,但这并不适用于此。)
所以当你定义一个课时,你必须下定决心:
您的会员是否可以从课外访问? - &GT;公开。
如果不是 - &gt;私有的。