当我的朋友问我时,我和我的朋友正在考虑一个C ++程序,“如果c ++允许我们创建动态对象会不会很好”
然后我问他的意思是什么,他告诉我这个故事......
假设在我的C ++程序中,我有一个类定义,其中包含一些数据成员。考虑使用以下类
class Student
{
char Skill[15];
int Age;
};
现在是否可以创建一个名称将是用户输入的对象?
例如
假设在我的主程序中我有一个像cout << "Enter Name: ";
这样的代码行。现在请注意,用户输入的任何内容都将存储在我在 main() 功能中创建的变量中。因此,假设用户将其姓名输入为“XYZ”(显然没有引号)。故事结束......
现在他问我“是否可以使用用户输入的名称创建 class Student
的对象?!(可能在 { {1}} )“ 即 main()
。
所以我想到了这个并且还没有得到任何答案,因此我发布这个问题,希望我能得到答案......那么可能吗?!
答案 0 :(得分:2)
没有。这是不可能的。您需要有一些静态名称来引用您在堆栈上创建的新对象。即,即使你可以创建它,你怎么可能在程序的后期引用它,因为当你编写程序时你不知道它将被称为什么?
答案 1 :(得分:1)
这是关联容器的用途。
struct Student {
unsigned age;
};
std::map<std::string, Student> students;
void enter_student()
{
Student st;
std::string name;
std::cout << "Enter name and age: ";
std::cin >> name >> st.age;
students[name] = st;
}