我现在正在从 Java 迁移到 C++,每当 Java 中的一个常用概念没有直接映射到 C++ 时,我都会遇到一些困难。例如,在 Java 中,我会执行以下操作:
Fruit GetFruit(String fruitName) {
Fruit fruit;
if(fruitName == "apple") fruit = new Fruit("apple");
else if(fruitName == "banana") fruit = new Fruit("banana");
else fruit = new Fruit("kumquat"); //'cause who really wants to eat a kumquat?
return fruit;
}
当然,在 C++ 中,该Fruit fruit;
语句实际上创建了一个结果。这是否意味着我必须有一个默认构造函数?这似乎不安全!如果我的默认水果逃脱了怎么办?