如何将值从main传递到private
How to pass values from the main to private
我已经了解了类以及私有和公共的工作方式,但我仍然对如何实现它们感到困惑。
我要做的是将2个整数从主传递到用户定义的行和列的私有类。然后使用行和列,2d数组被0到row*column-1的整数填充,并保存在private内部的函数中。
最后由public中的函数初始化。
我的问题是我如何传递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
}
私有数据只能由同一类的方法修改,因此您的选择是:
- 实现一个私有方法来填充值…但是这个私有方法需要从同一类的其他方法调用
- 实现一个受保护的方法,填充值…但是这个受保护的方法必须从同一个类或派生类调用。
- 实现一个填充值的公共方法。这个方法可以从任何地方调用。
您的选择取决于其余代码的结构。
不能从类外部访问私有类成员,这就是private的意义所在。(我知道,朋友可以,但这不适用于这里。)
所以当你定义一个类的时候你必须下定决心:
成员是否可以从类外部访问?->让它公开
如果没有-> private
我的问题是我如何传递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
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 代码在main()中运行,但在函数中出现错误
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 函数是否可以访问传递给main()的参数
- 在main()之外初始化std::vector会导致性能下降(多线程)
- std::make_shared和protected/private构造函数
- 我的 int main() 中出现堆栈溢出错误
- C++变量名(可以将 main 声明为变量,但对于其他函数名称则不然)
- 当我尝试在 Main 中调用插入函数时,它不是取数字?
- File.cpp.o:OpenPose 标志 CMakeFiles/.. 的多重定义/main.cpp.o:首先在这里定
- 为什么类和 main() 函数中也有动态内存分配
- 在 main.cpp 的上下文中找不到目录(带有 CMake 的快板)
- 我想在 Main 中用 C++ 调用其他类中的一个类,但我做不到
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 为什么 'main' 函数中的局部 int 变量会自动初始化?
- C++ assigment std::list:<typename>:itrator 在 main 中工作,但在方法中它不起作用
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 如何将值从main传递到private