在两个函数中使用相同的变量

det*_*ler 0 c++ function

我有两个函数read()write().我在read()函数中读取了一个文件,并在变量的标题中存储了一行.现在我希望该write()函数将相同的行写入新文件.但是,我如何使用来自其他函数的相同变量或信息?这样做的方法是什么?

以下是有关代码的一些信息:

在包含必要的文件后,它说明了这一点

HX_INIT_CLASS(HxCluster,HxVertexSet);
Run Code Online (Sandbox Code Playgroud)

该类的名称是HxCluster,如果有人能告诉我为什么它不像我们以简单的方式定义类,那将是很好的: class class_name {};

我有很多功能,其中两个是read()write().它们都只采用一个参数,即在相应的情况下要读取的文件和要写入的文件.我不知道为此编写代码是否有用.

que*_*atl 5

如果我理解你,这就是C++中结构/类/对象的用途.例如:

class FileLineWriter
{
public:
    FileLineWriter();

    void read(istream& inputfile);
    void write(ostream& putfile);

private:
    string line_of_text;
};

void FileLineWriter::read(istream& s)
{
    // s >> this->line_of_text; // possible, but probably will not do what you think
    getline(s, this->line_of_text);
}

void FileLineWriter::read(ostream& s)
{
    s << this->line_of_text;
}

...
FileLineWriter writer;
writer.read(firstfile);
writer.write(secondfile);
Run Code Online (Sandbox Code Playgroud)

请注意,上述内容不是正常工作的代码.这只是一个样本.您将必须修复所有拼写错误,缺少名称空间,标题,添加流打开/关闭/错误处理等.

  • 当然,我写了一切假设你可以改变读/写函数成为对象的**方法**.如果你不能这样做(即read()/ write()必须保持"无对象"普通函数),那么返回一行(普通返回或通过引用/指针参数)或使用-somekindof-globalvariable是唯一的选项. (2认同)