L'initialisation d'une référence à un membre de la valeur NULL en C++

Est-il possible d'initialiser un membre de référence à NULL en c++?

J'essaie à quelque chose comme ceci:

class BigClass
{
private:
  Object m_inner;
public:
  const Object& ReadOnly;
  BigClass() : ReadOnly(NULL)
  {
    Do stuff.
  }
};

Je sais que je peux le faire si j'initialise "ReadOnly" à une véritable référence d'un objet, mais quand je veux mettre dedans "NULL", j'obtiens l'erreur:

"impossible de convertir de 'int' à 'const Objet &"

Comment puis-je résoudre ce problème?

  • Le point de référence est de rendre cela impossible. L'utilisation régulière d'un pointeur à la place.
  • Vous pouvez le faire { const Objet& ReadOnly = *(Objet*)NULL; } Mais sa moche. Le pré-processeur enlève juste le & et le *
  • pré-processeur enlève juste le & et le *" non-sens
  • hem... permettez-moi de préciser hater. Le préprocesseur annule *& combo. Le déclarant à l'aide de réf & est juste en deçà de la main de sorte que vous n'avez pas besoin d'utiliser l'option -> il court à la main pour (*la).chose. donc là 😉
  • Le préprocesseur C++ n'a pas une telle chose.
  • Désolé pré-compilateur

InformationsquelleAutor Idov | 2012-01-29