Composite设计模式
示例代码:
component.h -> 统一父类
#pragma once
#ifndef __COMPONENT__
#define __COMPONENT__
class Component
{
int value;
public:
Component(int val) : value(val) {}
primitive.h -> 子类A
#pragma once
#ifndef __PRIMITIVE__
#define __PRIMITIVE__
#include "component.h"
class Primitive : public Component
{
public:
composite.h -> 子类B
#pragma once
#ifndef __COMPOSITE__
#define __COMPOSITE__
#include "component.h"
class Composite : public Component
{
vector<Component*> c;
public:
Composite(int val): Component(val) {}
创建未来的子类(abstraction)
子类自己去创造自己,并且创建出来的会被登记到abstraction当中,abstraction就可以调用下面子类的方法
class当中static的data一定要在class外进行声明一次 -> class外的声明才会给到内存