如何从类中返回自定义数组项目并操纵其属性?C
How to return a custom array item from a class and manipulate its properties? C++
我正在尝试使用get函数从表类返回单元格数。单元格具有自己的集合功能。
我只是通过制作单元格数并获取和设置属性来尝试。它起作用了,但是由于某种原因,它在这里不起作用。
class Cell {
int content;
...
public:
Cell() {
content = 0;
...
}
int getContent() {
return content;
}
void setContent(int x){
content = x;
}
};
class Table {
Cell cells[10];
public:
Table() {}
Cell getCell(int i) {
return cells[i];
}
};
int main () {
Table t;
t.getCell(0).setContent(22);
std::cout<<t.getCell(0).getContent();
}
我期望获得22,但该程序一无所获。
这是因为这里
Cell getCell(int i) {
return cells[i];
}
您正在返回Cell
的副本。然后,您更改其内容,但是当复制范围不范围时,这些内容会丢失。getCell(0)
制作在此行末尾丢弃的副本。相反,您想返回对单元格的引用:
Cell& getCell(int i) {
现在,它正在更改cells[10]
中Cell
的内容,而不是其副本。
您可以尝试这样的sth:
Cell* getCell(int i) {
return &cells[i];
}
t.getCell(0)->setContent(22);
std::cout<<t.getCell(0)->getContent();
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- C++概念:如何使用'concept'检查模板化结构的属性?
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 通过指向指针数组的指针访问子类的属性
- MSVC是否支持C++11样式的属性而不是__declspec
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 类的C++属性似乎已重新初始化
- C++setiosflags函数操纵器-未确定的缩进
- Qt Quick-如何仅从c++代码与qml属性交互
- 用概念检查属性的类型
- C++如何将同一类的实例作为属性
- 按多个属性排序
- 主函数参数的属性
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- C++删除未使用的类属性会导致 std::logic_error
- 无法使用 SWIG 在 Python 中实例化C++类(获取属性错误)
- 使用内存地址访问结构的属性值
- C++调用具有 *this 属性的单个帮助程序函数
- C++ 在堆栈中包含多态属性的类对象存储
- 如何从类中返回自定义数组项目并操纵其属性?C