小编Mik*_*ike的帖子

C的SOLID原则实现

我知道SOLID原则是针对面向对象语言编写的.

我在书中找到了罗伯特·马丁的"嵌入式C的测试驱动开发",本书最后一章的后续句子:

"应用开放封闭原则和Liskov替代原则可以实现更灵活的设计."

由于这是一本C(无c ++或c#)的书,应该有一种方法来实现这个原则.

在C中实现这个原则有什么标准方法吗?

c c++ design-principles solid-principles c++11

13
推荐指数
2
解决办法
4687
查看次数

声明静态对象和指向静态对象的指针之间的区别

    #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行)

c++ static-members

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