我现在正从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;
}
Run Code Online (Sandbox Code Playgroud)
当然,在C++中,Fruit fruit;语句实际上创造了一种结果.这是否意味着我必须有一个默认的构造函数?这似乎不安全!如果我的默认水果逃脱怎么办?