如何编写大型软件的大型代码库?

时间:2016-07-08 09:04:44

标签: c++ libreoffice

我试图为libreoffice解决一些错误(easyhacks),但我在理解代码时遇到了问题。这可能是因为我学习编程的方式,以前从未使用过大型代码库 以下是我的教科书和学校的编码方式。

#include<header1>
#include<header2>
using some namespace
class MyClass1{
.....
.....
};
class MyClass2 : public MyClass1{
.....
.....
};
int main()     //entry point 
{
int a , b ;
string str ;       //use basic data types
MyClass1 Ca
.....
.....
}

即使要学习复杂的事情,这大致也是程序的样子 现在我看到的bug有特定的代码指针,所以我调查了它,这就是我的样子

//mediaItem.hxx --> represents embedded media object
#include<several_headers.hxx>
class RANDOM_MACRO MediaItem : public SomeOtherClass{
public :
const sal_uint& some_var ;
const OUString& some_str ;   \\never before seen data types
virtual void someFoo ;
Virtual OUString getURL() ;  \\function i am supposed to look into
private :
struct Impl ;
...
};

然后有一个定义函数的.cxx文件。
所以我有几个问题

  1. 为什么基本数据类型不像int,string这样用于编写这样的程序?
  2. 这些大型程序的入口点在哪里,即当我编写程序时总是有一个main()。
  3. 像我经常在课堂上遇到的pImpl,Impl这样的术语。
  4. P.S。也许这应该是一个单独的问题,但是人们建议我使用调试器来理解大型代码库,现在我再次使用调试器来理解小程序,但我不明白我如何在这里使用它,特别是在不知道入口点的情况下。谢谢....

1 个答案:

答案 0 :(得分:1)

  1. intstd::string 等基本数据类型用于编写大型软件。其他类型也被使用。

  2. int main(/*optionally args*/)是所有程序的入口点(一些独立的嵌入式程序除外)。

  3. Impl是 IMPLementation 的缩写。 Pimpl是使用不透明指针实现的习语的名称。它是指向IMPLementation的指针或有时私有IMPLementation 的缩写。

  4.   

    我之前使用过调试器来理解小程序,但我不明白我如何在这里使用它

    调试器可用于理解所有程序,无论大小如何。