我试图弄清楚我是否可以使用具有字符串参数的函数创建'myclass'类变量。变量应该是字符串输入。
我想创建的函数看起来像这样:
void makevariable(string name){
myclass name;
}
问题是这个功能不起作用。如果string name ='apple',将创建一个myclass变量apple,那么期望的效果就是如此。请注意,我使用的是C ++。
答案 0 :(得分:0)
不,编译代码后,所有名称都消失了。无论如何,这将是一项无用的运动。您可以在类中使用String成员变量(可能称为name),并在创建类时将其设置为等于String。
你还应该知道,你写的语句会创建一个对象,一旦makevariable函数退出就会立即超出范围。通常,您只需使用类构造函数作为您之后的函数。
假设构造函数接受一个字符串并将其放在name字段中。
void someFunction(){
String someString = "apple";
String someOtherString = "banana";
MyClass anInstance = MyClass(someString);
MyClass anotherInstance = MyClass(someOtherString);
// More code using these instances
}
答案 1 :(得分:0)
在C ++中它是不可能的,它是静态编程语言。如果有可能,你会如何在函数之外使用这个变量?它是本地的。
但是,您可以使用以下内容:
class myclass {};
unordered_map<string, myclass> myclasses;
void makevariable(string name) {
myclasses[name];
}
int main()
{
string name = "var1";
makevariable(name);
myclasses[name];
myclasses.erase(name);
}