我有一个名为 Student 的类,我正在主程序中创建一个实例 Alex。创建实例 Alex 时,是否可以打印“正在创建 Alex”。如果变量名是“Joe”,它应该打印“Joe is being created”。
这是我的类定义
class Student
{
public:
int rollNo;
string address;
Student(int rollNo, string address)
{
this.rollNo = rollNo;
this.address = address;
}
//setter , getter functions.
};
Run Code Online (Sandbox Code Playgroud)
// 在主程序中
Student Alex;
Student Joe;
Run Code Online (Sandbox Code Playgroud)
注意1:是的,我们可以在 Student 类中使用变量“name”并在实例化它时传递名称 Alex/Joe 并根据需要在构造函数中打印。但这不是我的情况。我纯粹不想传名字
没有宏就无法自动执行此操作,因为 C++ 不支持反射。一种可能性是在您的呼叫站点上使用宏:
#define CREATE_VARIABLE(type, name) \
::std::cout << "Creating " #name " of type " #type << '\n'; \
type name
Run Code Online (Sandbox Code Playgroud)
用于:
CREATE_VARIABLE(Student, Alex);
CREATE_VARIABLE(Student, Joe){joeRollNo, joeAddress};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |