zoukankan      html  css  js  c++  java
  • c++踩坑大法好 宏定义 头文件

    1,c++宏定义是干啥的?防止重复引用,如何防止重复引用?

    //a.h
    //声明一个类,和其他声明
    #include <iostream>
    class A{
        public:
            static int a;
            static int b;
    };
    
    //b.h
    //需要a.h的类,又还有些其他声明
    #include "a.h"
    
    //main,cpp
    //既需要a.h,又需要b.h,所以只能把两个头文件都引用过来。
    
    #include "a.h"
    #include "b.h"
    
    //报错,此处重复定义了,因为一共引用了3个文件:
    //1,a.h
    //2,b.h
    //3,a.h(b.h中引用的)
    int main{
        xxx一堆代码
    }
    
    怎样修改才对?
    
    //a.h
    #ifndef hehe
    #define hehe
    #include <iostream>
    class A{
        public:
            static int a;
            static int b;
    };
    #endif
    //这样当第一次引入a.h的时候会声明class并且定义一个hehe变量,第二次走到
    a.h的时候发现已经有了hehe了,就不会再重新声明hehe了

    2,头文件里能写什么样的声明?

    ①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。

    ②变量声明:用于向程序表明变量的类型和名字。

    ③定义也是声明:当定义变量时我们声明了它的类型和名字。

    ④extern关键字:通过使用extern关键字声明变量名而不定义它。

    所以,h文件中原则上只能写类声明,函数声明,静态全局变量(const这种),外部变量(extern这种)

  • 相关阅读:
    Java8_Stream_了解
    Java8_方法引用和构造器引用
    Java8_函数式接口
    Java8_表达式语法
    Spring注解
    Spring_IOC笔记
    一台电脑访问另一台电脑上的VMware
    Vmware 新装centos7 ping 百度 出现 unknow host
    Windows下的免安装版MySQL配置
    Springboot2 注解@Import的使用
  • 原文地址:https://www.cnblogs.com/0-lingdu/p/12201849.html
Copyright © 2011-2022 走看看