我试图在.cpp文件中实现.h文件的代码。这是头文件:
class ProcessOrders
{
public:
double process_shipment(int q, double c);
double process_order(int q);
private:
std::stack<Inventory> Inventory_on_hand; // keep track of inventory on hand
std::stack<Order> orders_to_be_filled; // keep track of orders
};
问题是函数process_shipment和process_order需要能够将内容推送到私有堆栈,但是我得到了一个无法解析标识符的问题&#34;如果我尝试在.cpp文件中引用它们,则会出错。
这可能非常明显,但是如何在.cpp文件中实现公共成员时访问私有成员?我无法修改头文件。
答案 0 :(得分:0)
当您在其类之外实现成员函数时,您需要使用ClassName::
为所有成员函数的名称添加前缀。
这样做可以让您只使用各自的名称访问每个私有变量。
另外,请不要忘记在#include
文件顶部.cpp
您的课程头文件。
double ProcessOrders::process_shipment(int q, double c)
{ /*...*/ Inventory_on_hand. //... }
double ProcessOrders::process_order(int q)
{ /*...*/ }
答案 1 :(得分:0)
您可以在班级的.cpp中访问它们。头文件包含声明,而.cpp文件有定义。
在上面的代码中,两个堆栈都是私有的,这意味着它们只能在同一个类的函数中访问。因此,当您在.cpp文件中定义process_shipment时,您可以在堆栈中推送任何内容。
您可以在
中访问orders_to_be_filled堆栈double ProcessOrders::process_shipment(int q, double c)
使用代码
this.orders_to_be_filled;