习惯了使用 Java 和 C# ,它们都是在定义类的时候,直接把类的实现也写在类中。不知道正统的 C++ 类写法是什么?是: 将类的定义写在 XX.h 文件中, 类的实现写在 XX.cpp 中 呢?
还是: 和 Java、C# 一样,将类的定义和实现一起写在 XX.h 中?此外,在 C++ 中重复 include 同一个 .h 文件, 有没有问题? 好像在 .h 文件中定义了变量了,会导致问题?
正统的写法又是怎么样的呢?c++include重复 include

解决方案 »

  1.   

    C++的建议写法是:定义与实现分开。如果是VC,可以用
    #pragma once
    来避免重复引用。其他的可以用
    #ifdef _AAA_H
    ....
    #endif
    来避免重复引用。
      

  2.   

    更正一下,其他的是
    #ifndef _AAA_H
    #define _AAA_H
    ...//定义
    #endif
      

  3.   

    1.类的函数声明在.h文件中, 类的函数实现在.cpp中。不过有一些函数的实现可以写在.h中 比如inline
    2.在每一个.h文件的最前面,用宏#pragma once 或者自己用头文件卫士 #ifndef __FILE_NAME_  #define __FILE_NAME_  /*中间是你类的代码*/ #endif 
      

  4.   

    1. h中申明,cpp中实现
    2. #pragma once可以防止头文件重复包含
      

  5.   

    是: 将类的定义写在 XX.h 文件中, 类的实现写在 XX.cpp 中 古老的mfc  有宏定义  
    vs2010 用pragma once 至编译一次
      

  6.   

    也不完全是这样吧。看怎么让读者容易理解了。 在.h文件中定义短小简洁的函数实现也是可以的,一般默认就是 内联了 。 冗长的功能函数就写到CPP文件中比较好了。
      

  7.   

    “h中申明,cpp中实现”这种做法是因为当时的IDE不够强大,这种做法可以使一个类的接口变的非常清,因为头文件中只有申明,但这种习惯被一直保留下来,以至于现在C++程序都这么写。
    其实直接与Java一样写在类中也没有任何问题,现在的IDE可以自动提取类的结构,无需再直接看头文件了。