总而言之,我仍在学习 C++,但我在一个我正在修补的项目中遇到了一个我很好奇的问题。我注意到,当我尝试打印作为类成员的字符串的内容时,我得到的是内存地址而不是内容。我知道这是因为该项目是一个指针,但我感到困惑的是我正在使用->
运算符来尊重它。
为什么我可以使用运算符在 if 语句中评估类成员->
以取消引用它,但是当以相同的方式打印到文件字符串时,我得到了内存地址?
下面是一个例子:
假设我有一个名为 pClass 的类,其中有一个名为m_strEmployeeName
. 作为旁注(我不知道这是否重要),该m_strEmployeeName
值是CString
而不是std::string
,因此也可能存在一些未知的转换问题。
如果我使用下面的简单代码,我会得到一个内存地址。
std::ofstream file("testfile.text");
file << pClass->m_strEmployeeName;
file.close();
我使用以下取消引用方法得到了相同的行为(我期望这是因为 -> 是同一件事)。
std::ofstream file("testfile.text");
file << (*pClass).m_strEmployeeName;
file.close();
知道我做错了什么吗?