是否可以为类别的对象键入别名,例如
using Potion = Collectable("Potion");
然后我们有一个方法,如
void print_collectable(const Collectable& item)
{
// print stuff from collectable i.e.
std::cout << item.get_name() << std::endl;
}
我们可以通过药水而不是可收集(“药水”)
print_collectable(Potion) vs print_collectable(Collectable("Potion"))
预计会打印出“药水”
显然我们可以创建一个名为potion的对象,即Collectable potion(//...)
,但我很想知道我们是否可以使用上面的方法创建临时对象,当我们不需要存储对象和/时或者保存一些打字
答案 0 :(得分:5)
使用常量。
const Collectable Potion("Potion");
答案 1 :(得分:2)
也许这就是你要找的东西:
struct {
operator Collectable() const { return Collectable("Potion"); }
} Potion;
每次,你打电话
print_collectable(Potion);
它会创建一个Collectable("Potion")
的临时对象,并将其传递给print_collectable
。