Esta declaração não possui especificador de classe ou tipo de armazenamento em C ++

Eu tenho várias classes no meu programa.

A) Quando crio um objeto de uma classe em outra classe, não recebo nenhum erro, mas quando uso o objeto para chamar uma função, obtenho o erro acima.

B) Além disso, se eu criar um objeto de outra classe e chamar uma função usando isso no construtor da minha classe, não receberei nenhum erro como este.

C) A função Cout não funciona no corpo da classe, exceto quando eu coloco alguma função

D) A classe principal é capaz de fazer tudo isso e não estou recebendo nenhum erro.

Seria ótimo ouvir de volta em breve. Agradeço antecipadamente .

A seguir está o código: Estas são duas classes no meu cpp. Não estou enfrentando problemas, exceto usando o objeto depois de criá-lo. o código é muito grande para ser postado. Tudo pode ser feito no principal, mas não em outras classes, por quê?

 #include <iostream>
 #include <fstream>
 #include <iomanip>
 #include <string>
 #include <cstdlib> 
 #include <vector>
 #include <map>
 using namespace std;
 class Message
  {

    public:
    void check(string side)
       {
    if(side!="B"&&side!="S")
          {
    cout<<"Side should be either Buy (B) or Sell (S)"<<endl;;
          }
       }
  };

    class Orderbook
  {
    public:
      string side;
      Orderbook()  //No Error if I define inside constructor
      Message m;       //No Error while declaring
      m.check(side);   //Error when I write m. or m->
  };

questionAnswers(2)

yourAnswerToTheQuestion