我的程序中有多个类。
A)当我在另一个类中创建一个类的对象时,我没有得到任何错误,但当我使用该对象调用一个函数时,我得到了上述错误。
B)同样如果我创建了另一个类的对象,并在我的类的构造函数中调用了一个函数,那么我不会得到这样的错误。
C)Cout函数在类体中不起作用,除非我将其放入任何函数
D)主类能够完成所有这些操作,我没有得到任何错误。
很快就能收到回复真是太好了。先谢谢你。
代码如下:这是我的cpp中的两个类。我没有遇到任何问题,除了在创建对象后使用它。代码太大了,无法发布。所有的事情都可以在main中完成,但为什么不能在其他类中?
#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->
};
3条答案
按热度按时间qmelpv7a1#
这是一个错误:
代码必须在函数内部。类定义只能包含声明和函数。
类并不“运行”,它们提供了一个如何创建对象的蓝图。
行
Message m;
意味着如果您以后创建一个Orderbook
,则Orderbook
将包含名为m
的Message
。w1jd8yoj2#
调用m.check(side),意味着你正在运行实际的代码,但是你不能运行main()之外的代码--你只能定义变量。在C++中,代码只能出现在函数体或变量初始化中。
azpvetkf3#
你可以在另一个类中声明一个类的对象,这是可能的,但是你不能初始化那个对象。为此你需要做如下的事情:--〉(inside main)
但那是不必要的。长话短说
不能调用类内的函数