c++ - 如何在运行时创建和命名对象?
问题描述
我有一个名为 studentInfo 的课程:
#pragma once
#include<string>
using namespace std;
class studentInfo
{
public:
//constructors
studentInfo() {}
studentInfo(string n, int a, string g);
void printDetails();
private:
string name;
string gender;
int age;
};
.cpp 文件:
#include "studentInfo.h"
#include<string>
#include<iostream>
studentInfo::studentInfo(string n, int a, string g)
{
name = n;
age = a;
gender = g;
}
void studentInfo::printDetails()
{
std::cout << "Name: " << name << "\nAge: " << age << "\nGender: " << gender << endl;
}
所以我知道如何使用构造函数创建一个实例,例如:studentInfo s1182("Ollie", 19, "Male");
但是有没有一种方法可以在运行时做到这一点并让实例由用户输入命名?类似于以下内容:
string ID;
cin >> ID;
studentInfo *what ID is*("Bob", 18, "Male");
因此,如果输入的 ID 是 s2212,则该实例将命名为 s2212,这意味着我可以这样做s2212.printDetails()
解决方案
这不可能。标识符无法在运行时确定。
可能接近您尝试的方法是使用从字符串名称到学生对象的关联映射。
推荐阅读
- pandas - 来自列表元素的熊猫新数据框
- reactjs - 为什么反应'stl-viewer'没有加载我的私人自定义python烧瓶api提供的stl文件
- python - Python - 替换字符串的一部分
- rust - 有没有办法为 x32 ABI 构建 Rust?
- node.js - Twilio 11200 错误 - HTTP 检索失败
- amazon-web-services - 将文件 (csv) 的 FTP 自动传输到 Amazon S3 存储桶
- python - Tkinter 中的匿名函数 - Python
- rust - 我们可以修改 execute around idiom 以使用可变的 self 吗?
- postgresql - 无法通过 unix 套接字连接到 postgres
- python - 将哈希模式应用于 BAR PLOT