【发布时间】:2018-10-19 19:49:31
【问题描述】:
在类中更改类/结构的值对我来说是个谜。我今天尝试做一些研究,并提出了以下解决方案。我想知道这是否是函数更改类内内容的正确方法。是否需要以某种方式使用指针完成此操作?有没有更合适的方法来做到这一点?
#include <iostream>
int main()
{
class Someclass {
private:
int Integer;
public:
Someclass(int i):
Integer(i){} //CTOR
struct Somestruct {
int a, b;
};
Somestruct Mystruct;
void func(){
Mystruct.a = Integer/2;
Mystruct.b = Integer*2;
};
};
Someclass A(10);
A.func();
std::cout << A.Mystruct.a << " " << A.Mystruct.b << std::endl;
}
我写这段代码的原因是因为我想解析一个文件,从“整数”行开始到一个自定义的结构“Mystruct”,这个类应该以某种方式传递给我。这是编写此类代码的可接受方式吗?
【问题讨论】:
-
我无法理解问题所在。为什么需要内部类?请举个例子。
-
需要解析的数据非常庞大~对于 Someclass 的每个实例都包含大约 30 个不同的元素值(其中实例是通过“整数”设置的)。我不想在这个类文件中编写所有声明/定义,所以我编写了另一个包含结构定义的头文件和 cpp 文件,我将在其他地方编写解析文件的函数。只是为了让代码更具可读性。
-
“实例是通过“整数”设置的”是什么意思?
-
我通过设置 Integer 创建了一个带有构造函数的类。解析器根据整数找到文本文件中的位置并提取大约 30 个属性。每次需要提取某些东西时,我都会使用构造函数 Integer 创建一个类,获取值,然后破坏我的类。