我有以下两个构造函数:
MyClass(char* path);
MyClass(int n);
如果用户已将路径作为参数传递,则需要调用第一个,否则,则需要调用第一个。
我的问题是我不知道如何执行此操作,因为如果不先初始化就无法定义类,也无法定义引用,然后将类创建到if-else块中,如下所示:
MyClass& c;
if (argc == n) // path passed
{
c = MyClass(argv[n-1]);
}
else {
c = MyClass(10);
}
您可以使用三元表达式。 (在C ++ 17之前,这要求您的类是可复制的或可移动的。)