C++声明和定义是不同的(mooc)

  • 在C++ 中声明和定义要严格区分,不能在头文件里有定义。只能有声明。声明的方式如下
    extern  int  a;  // 用extern  声明变量
    int max(int, int); // 函数原型 声明函数
    //以及类和结构体的声明
  • 一个c++文件就是一个编译单元(c也一样)
  • 一个头文件中最好是只有一个类的声明。无论是C还是C++都不能include   .c or  .cpp文件,只能是include头文件(C++中也可以include不带后缀的文件比如iostream)头文件中只能有声明,不能有定义,头文件中要使用标准头文件结构(#ifndef...#define....#endif  这些)避免重复声明。
  • 在类中成员变量的声明不需要加extern。
    class  A 
    {
        private:
              int  num;  //这就是声明成员变量了,这个和全局变量声明不同,不需要加 extern
        public:
              int  b;
              void  func();  
    }
    
    // num的定义是在类的方法中使用的时候。因为声明是不分配内存的,编译器只是知道有这么个东西,但不知道在内存哪里。而定义就是告诉了编译器东西存在内存的哪里。
    
    A::func()     // 这是类的方法的定义
    {
         num = 6;
        cout << num << endl;
    }
    
    void  main()
    {
         A  a; //创建了一个A的对象
         a.func();  //调用了func方法
         a.b = 9;  // 成员变量b 是public,可以调用
         cout << a.b << endl;
    }
  • 类中的方法(或者叫函数)是属于类的,不属于对象。
原文地址:https://www.cnblogs.com/bneglect/p/14655813.html