Alo*_*kin 2 c++ oop constructor pointers const
我正在学习C++.我有一个名为GameContext的简单类:
class GameContext {
public:
GameContext(World world);
virtual ~GameContext();
};
Run Code Online (Sandbox Code Playgroud)
要初始化一个GameContext对象,我需要一个World对象.
GameContext构造函数是否应该指向 World对象(World*),World对象的地址(&World)或对World对象(World)的引用?
const在参数附近使用时,关键字是什么?例如:GameContext(const World &world)
谢谢.
首先,teminology:你是World *一个指向World对象的指针是正确的.World &但是,A 将是对World对象的引用.A World将是World对象的副本,而不是对它的引用.
的const(具有指针或引用主要用于,如在World const &world或World const *world)意味着你得到一个参考/指针const对象-换句话说,你不允许修改它所指/分原始对象.
对于小对象,通常需要传递副本.对于大型对象,通常需要传递const引用.这有例外,但这是一个合理的经验法则,直到你已经学到了足够多知道何时违反规则(可以这么说).
只是根据名称,我猜你的World对象可能足够大,你可能想通过const引用传递它,所以你的ctor应该是这样的:
GameContext(World const &world);
Run Code Online (Sandbox Code Playgroud)