C++ 如何通过读取文本文件更改私有变量

C++ 如何通过读取文本文件更改私有变量,c++,file,variables,private,C++,File,Variables,Private,好吧,我编写代码是为了好玩,但问题是: 我有一个带有私有字符串变量的类,我想更改它,但我想将它更改为从文本文件中读取的一行。除了创建一个单独的字符串来获取文本文件,然后使用成员函数来更改私有变量之外,没有其他方法了吗 这是我在这里的第一个问题,请告诉我是否需要澄清一些事情在任何成员函数中更改该变量如何 成员函数将具有编辑其私有成员变量的权限 私有成员被设计为使用类的公共方法进行操作。如果您不需要对它们进行任何复杂的操作,那么可以创建getter和setter——这些方法只用于读取或写入私有变量(

好吧,我编写代码是为了好玩,但问题是:

我有一个带有私有字符串变量的类,我想更改它,但我想将它更改为从文本文件中读取的一行。除了创建一个单独的字符串来获取文本文件,然后使用成员函数来更改私有变量之外,没有其他方法了吗


这是我在这里的第一个问题,请告诉我是否需要澄清一些事情

在任何成员函数中更改该变量如何


成员函数将具有编辑其私有成员变量的权限

私有成员被设计为使用类的公共方法进行操作。如果您不需要对它们进行任何复杂的操作,那么可以创建getter和setter——这些方法只用于读取或写入私有变量(也可以检查值等等)

#包括
甲级
{
私人:
std::string privateString;
公众:
std::string getPrivateString()常量{return privateString;}
void setPrivateString(const std::string&newString){privateString=newString;}
};

如果你的类需要处理文件,您可以创建一个公共方法从文件中读取该行,并将其直接存储到私有成员。

您希望如何处理该类的私有字符串变量?您可以将该变量用作从文件读取的
fread
函数的目标。可以使用成员函数读取和写入私有变量因此,如果你不想创建一个新变量,你必须编写一个类级函数来读取文件,并在私有变量note中存储一个所需的值@Melebius已经为他的getter和setter方法使用了pass-by-value语义。根据编译器的不同,这可以大大提高性能(请参阅)。根据类A的使用情况,您可以选择使用按引用传递,在这种情况下,您应该适当地放置常量限定符,以避免类的用户无意中修改内容,例如
const std::string&getprivatesting()const
void setprivateststring(const std::string&newString)
。如果我可以,您介意在getPrivateString()的定义后面加一个常量吗?谢谢。@Rob好的,我在我的示例中添加了引用和
const
限定符,尽管我的初衷是编写最少但仍能工作的代码。但是,我仍然保留了返回值的
getPrivateString()
方法,因为您可以在较少限制的情况下使用它。甚至可能会有两个人在一起。@Melbius谢谢!只是想要一个
const
,而不是让您也添加一个passbyreference示例。完全同意最小代码示例更好:)我理解使用公共方法操纵私有成员的方法,但如何使用该方法读取文本文件?
#include <string>

class A
{
private:
    std::string privateString;

public:
    std::string getPrivateString() const { return privateString; }
    void setPrivateString(const std::string& newString) { privateString = newString; }
};