小编Mix*_*Mix的帖子

依赖倒置原则:试图理解

我正在学习设计模式和它周围的东西(特别是SOLIDDependency inversion原理),看起来我正在失去一些东西:

遵循DIP规则,我应该能够通过不在类(组合)中创建对象,而是将对象引用/指针发送到类构造函数(聚合)来使类不那么脆弱.但这意味着我必须在其他地方创建一个实例:因此,具有聚合的一个类越灵活,另一个类就越脆弱.

请解释一下我错在哪里.

c++ design-patterns composition aggregation dependency-inversion

3
推荐指数
1
解决办法
317
查看次数

为什么"已定义"?

请在这里建议我一个提示:

class UIClass
{
public:
    UIClass::UIClass();
};

#ifndef __PLATFORM__
#define __PLATFORM__
    UIClass Platform;
#else
    extern UIClass Platform;
#endif
Run Code Online (Sandbox Code Playgroud)

我包括这两次,得到:

LNK2005 - 已在.obj(MSVS13)中定义的平台.

你可以猜到,这个想法只是定义一次Platform.为什么#ifndef#define失败?我该怎么解决这个问题?

c++ c-preprocessor ifndef

1
推荐指数
1
解决办法
169
查看次数