构造函数中的C++语法错误 - arugment引用另一个类中的对象

构造函数中的C++语法错误 - arugment引用另一个类中的对象

问题描述:

我想访问类Menu中类Product的方法和字段。 所以我写了下面的代码:构造函数中的C++语法错误 - arugment引用另一个类中的对象

Menu.h

#include "Product.h" 
class Menu{ 
public: 
    Menu(Product& prod); 
    Menu(); 
private: 
    Product product;} 

Menu.cpp

#include "Menu.h" 
Menu::Menu(Product& prod) { this->product = prod; } 
Menu::Menu() {} 

Product.h

#include "Menu.h" 
Class Product{ 
public: 
    Product(): 
} 

和我在菜单构造函数中得到以下错误: 语法错误:标识符'产品'。

我改变菜单构造函数:

Menu(const Product& prod) 

,但它没有工作过。

任何人都知道如何解决它?

+2

请提供[mcve]。目前还不清楚'Product.h'中声明了什么(如果在那里甚至声明了'Product'类)。 –

+0

产品是一个空的类,没有字段,没有方法构造函数但我添加它。 – qblacksheep

+0

在类定义之后加上分号:'class Menu {...};' – scopchanov

从错误中清理你的代码后,它看起来像这样和编译就像一个魅力:

Menu.h

#include "Product.h" 

class Menu { 
public: 
    Menu(Product& prod); 
    Menu(); 
private: 
    Product product; 
}; 

Menu.cpp

#include "Menu.h" 

Menu::Menu(Product& prod) 
{ 
    product = prod; 
} 

Menu::Menu() 
{ 

} 

Product.h

class Product { 
public: 
    Product() 
    { 

    } 
}; 

删除Product.h中的#include“Menu.h”

并且是,请提供完整示例。

+0

如果有头卫兵,肯定没有什么区别。 –

+1

@SamerTufail您是否看到过示例中的任何标头警卫? –

+0

@AlgirdasPreidžius通常它们是自动生成的,发布示例时通常不会添加它们。点正在我等待[mcve] –