该声明在C++中没有存储类或类型说明符

Jai*_*ain 12 c++

我的课程中有多个课程.

A)当我在另一个类中创建一个类的对象时,我没有错误但是当我使用该对象来调用一个函数时,我得到了上面的错误.

B)另外如果我创建另一个类的对象并在我的类的构造函数中使用它调用一个函数,那么我没有得到这样的错误.

C)Cout函数在类的主体中不起作用,除非我把它放到任何函数中

D)主类能够完成所有这些并且我没有收到任何错误.

很快就能收到回复.先感谢您 .

以下是代码:这是我的cpp中的两个类.除了在创建对象后使用对象,我没有遇到任何问题.代码太大了太过贴了.一切都可以在主要但不在其他课程中完成,为什么?

 #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->
  };
Run Code Online (Sandbox Code Playgroud)

M.M*_*M.M 12

这是个错误:

m.check(side);
Run Code Online (Sandbox Code Playgroud)

该代码必须进入函数内部.您的类定义只能包含声明和函数.

类不会"运行",它们提供了如何制作对象的蓝图.

该行Message m;表示如果稍后创建一个Orderbook将包含Message被调用mOrderbook.

  • `s/Classes不"运行"/类声明不"运行"/` (5认同)

msa*_*deh 9

调用 m.check(side),意味着您正在运行实际代码,但您不能在 main() 之外运行代码 - 您只能定义变量。

在 C++ 中,代码只能出现在函数体内或变量初始化中,除非它是初始化静态变量的函数。

  • 如果它是初始化静态变量的函数,则可以在 main 之外运行代码。 (4认同)