我知道SOLID原则是针对面向对象语言编写的.
我在书中找到了罗伯特·马丁的"嵌入式C的测试驱动开发",本书最后一章的后续句子:
"应用开放封闭原则和Liskov替代原则可以实现更灵活的设计."
由于这是一本C(无c ++或c#)的书,应该有一种方法来实现这个原则.
在C中实现这个原则有什么标准方法吗?
#include <iostream>
using namespace std;
class First{
public:
void fun()
{
cout<<"base fun called\n";
}
};
class Second{
public:
static First x; //Line 1
static First *y; //Line 2
};
First Second::x; //Line 3
First* Second::y; //Line 4
int main()
{
Second::x.fun();
Second::y->fun();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
第1行和第2行是声明,第3行和第4行是定义,我从其他一些有关静态成员的stackoverflow帖子中了解到这一点.
Q1.为什么我们必须定义这样的静态对象?(第3行和第4行)
Q2.x和y之间有什么区别?(第1行和第2行)
Q3.为x和y对象分配的内存在哪里?(第3行和第4行)