作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
虽然我已经搜索了几个小时,但我找不到这个问题的任何 C++ 答案(其他语言是)。我怎样才能从另一个类(class)访问单例?
声明:
#include "Store.h"
Store *store = Store::Instance(); // Singleton
int main()
{
store->GetDepts();
return 0;
}
我希望能够从我的客户代理类访问它:
#include "Store.h"
class Cust_Proxy
{
public:
Cust_Proxy(string cust_name)
{
name_ = cust_name;
}
void AddItem(Item item)
{
store->AddItemToShoppingCart(item); // or something, just for example
}
private:
string name_;
ShopCart cart_;
};
我试过将它作为参数传递,但显然在单例“存储”中没有公共(public)构造函数:
void AddItem(Store *store)
{
store = Store::Instance();
// Do Stuff;
}
如有任何帮助,我们将不胜感激。谢谢。
最佳答案
代替
store->AddItemToShoppingCart(item);
使用
Store::instance()->AddItemToShoppingCart(item);
您不需要在 main.cpp
或任何其他使用单例的函数中存储指向单例的指针。在需要时通过调用 Store::instance()
来访问单例。
在main
中,你可以使用:
int main()
{
Store::instance()->GetDepts();
return 0;
}
并删除该行
Store *store = Store::Instance(); // Singleton
关于c++ - 如何从其他类 C++ 访问单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925106/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!