相关疑难解决方法(0)

没有指针的C++多态

假设我有一个基类Animal与虚函数和一些派生类(Cat,Dog等).实际派生类包含4-8个字节的数据.我想存储一个std::list<Animal>实际上包含派生对象的项目.我想避免使用new在堆上创建许多小对象.

有没有可用于实现此目的的设计模式?

编辑:我的想法来实现这一点

  1. 创建std::deque<Cat>,std::deque<Dog>...; std::list<Animal*>包含指针的商店deques; 我使用的是std::deque因为我认为它具有良好的内存管理和大量的对象;

c++

31
推荐指数
2
解决办法
2万
查看次数

为什么运算符重载指针不允许工作?

根据这个答案的评论,引用的引用主要是为了支持运算符重载,引用Bjarne Stroustrup:

引用的引用主要是为了支持运算符重载.C按值传递每个函数参数,并且按值传递对象的效率低或不合适,用户可以传递指针.在使用运算符重载的情况下,此策略不起作用.在这种情况下,符号方便是必不可少的,因此如果对象很大,则不能期望用户插入操作符的地址.

这意味着运算符重载无法使用指针.但它没有清楚地解释为什么运算符重载指针无法工作.为什么运算符重载不能用于指针?

IMO使用引用,指针也可以在其位置使用.

c++ pointers language-design reference

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×2

language-design ×1

pointers ×1

reference ×1