liu-jianhao / cpp-design-patterns Goto Github PK
View Code? Open in Web Editor NEWC++设计模式
C++设计模式
line4 class Visitor;
这里的前置声明无法编译,因为
line19 visitor.visitElementA(*this);
这里用到了类成员。仅当我们使用类引用或者指针时前置声明才有用,这样是编译不过去的。
应该把类Visitor定义提前,放在line4处
#include <iostream>
using namespace std;
class Visitor{
public:
virtual void visitElementA(ElementA& element) = 0;
virtual void visitElementB(ElementB& element) = 0;
virtual ~Visitor(){}
};
class Element
{
public:
virtual void accept(Visitor& visitor) = 0; //第一次多态辨析
virtual ~Element(){}
};
...
你好,想问一下在CurrentConditionsDisplay类中,为什么不能把weatherdate->registerObserver(this);这句直接放在构造函数中呢。我放进去后会显示段错误,但不知道是什么原因造成的。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.