刚开始使用C++进行编码。我想了解当我想定义一个变量并以其他名称将其发布时C++类是如何工作的。
道歉,如果这个问题没有道理。我的代码来自一本著名的教科书。我没有收到任何错误消息;我只是想了解C++是如何工作的。我有一些Python经验,这个过程使我感到困惑。
#include <iostream>
#include <string> //program uses C++ standard string class
using namespace std;
// Gradebook class definition
class GradeBook
public:
void displayMessage( string courseName )
{
cout << "Welcome to the Grade Book for\n" << courseName << "!"
<< endl;
}
};
int main()
{
string nameOfCourse;
GradeBook myGradeBook;
// prompt for and input course name
cout << "Please enter the course name: " << endl;
getline( cin, nameOfCourse );
cout << endl;
myGradeBook.displayMessage( nameOfCourse );
}
输出结果很好。
注意两个变量:
courseName
和nameOfCourse
。教科书说,courseName
变量在第17行变成了nameOfCourse
变量,它位于: string nameOfCourse;
您能帮我了解这种转变是如何发生的吗?
最佳答案
如果courseName
是一个引用(std::string&
),那么在第17行中将courseName
绑定(bind)到nameOfCourse
是正确的(换句话说,在displayMessage
调用期间,courseName
只是nameOfCourse
的另一个名称)。
但是1.被称为“引用绑定(bind)”,而不是“变量转换”,并且2.此处不是这种情况-调用nameOfCourse
时,courseName
被复制到displayMessage
:std::string
的副本构造函数用于创建nameOfCourse
的副本。
变量(和/或变量名)在C++中不会“转换”(尤其是在按值调用的上下文中),因此,除非此处存在翻译/转录/一般交流问题,否则这本书是完全错误的。
关于c++ - C++字符串类如何将变量转换为另一个变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56777303/