C++构造函数参数问题

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)

谢谢.

Jer*_*fin 6

首先,teminology:你是World *一个指向World对象的指针是正确的.World &但是,A 将是对World对象的引用.A World将是World对象的副本,而不是对它的引用.

const(具有指针或引用主要用于,如在World const &worldWorld const *world)意味着你得到一个参考/指针const对象-换句话说,你不允许修改它所指/分原始对象.

对于小对象,通常需要传递副本.对于大型对象,通常需要传递const引用.这有例外,但这是一个合理的经验法则,直到你已经学到了足够多知道何时违反规则(可以这么说).

只是根据名称,我猜你的World对象可能足够大,你可能想通过const引用传递它,所以你的ctor应该是这样的:

GameContext(World const &world);
Run Code Online (Sandbox Code Playgroud)