程序结构:单个文件实现的缺点(类+驱动程序)

时间:2016-11-30 01:12:06

标签: c++ oop organization

这个问题涉及程序结构及其与多个文件的分离(或缺失)。我最近看到self-contained, single-file BFS demonstration in C++;突出显示结构的简略版本如下:

#include<iostream>
#include <list>
using namespace std;
class Graph
{
    //declarations of member functions and variables
    int V;
    list<int> *adj;
public:
    Graph(int V);
    void addEdge(int v, int w);
    void BFS(int s);
};

//definition of constructors, member functions
Graph::Graph(int V)
{
    this->V = V;
    adj = new list<int>[V];
}

...

// Driver program
int main()
{
    Graph g(4);
    g.addEdge(0, 1);

    ...

    g.BFS(2);
    return 0;
}

或者,我们可以将类声明放在.h头文件中,将实现放在另一个.cc文件中。上面引用的方法有哪些缺点?有些我能想到:
1.无法在其他课程中include Graph课程;
2.无法单独编译Graph类,即非模块化

还有其他缺点吗?关于名称空间污染似乎没有任何不利因素。

我觉得以前应该问过这个问题,但是我无法立即在这里找到它。

0 个答案:

没有答案