C++防止头文件重复引用

12 篇文章 0 订阅
6 篇文章 0 订阅

1、#pragma once

#pragma once
#include<iostream>
using namespace std;
class Student
{
public:
	Student()
	{
		cout << "I am a student." << endl;
	}
};
#pragma once
//#include<iostream>
#include "student.h"
//using namespace std;
class School
{
public:
	School()
	{
		cout << "This is a school." << endl;
		Student stu;
	}
};
#include "student.h"
#include "school.h"
int main()
{
	Student a;
	School b;
	return 0;
}
I am a student.
This is a school.
I am a student.

2、#ifndef xx #define xx xxxx #endif

#include<iostream>
using namespace std;
#ifndef _STUDENT_H
#define _STUDENT_H
class Student
{
public:
	Student()
	{
		cout << "I am a student." << endl;
	}
};
#endif // !_STUDENT_H

//#include<iostream>
#include "student.h"
//using namespace std;
#ifndef _SCHOOL_H
#define _SCHOOL_H
class School
{
public:
	School()
	{
		cout << "This is a school." << endl;
		Student stu;
	}
};
#endif // !_SCHOOL_H
#include "student.h"
#include "school.h"
int main()
{
	Student a;
	School b;
	return 0;
}
I am a student.
This is a school.
I am a student.

·引用
**平时都是在别人的项目代码基础上加自己的内容,其实他们的头文件也有,没注意到,可惜。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ 中,如果想要在一个源文件中使用另一个源文件中定义的函数,可以使用头文件头文件可以包含函数声明和函数定义,以便在其他源文件中使用。 当头文件中包含了其他作用域中定义的函数时,需要使用作用域解析运算符 "::" 来指定函数的作用域。例如,在头文件中包含了命名空间中的函数时,可以使用作用域解析运算符来指定函数的作用域,如下所示: ```c++ // header.h namespace ns { void func(); } // source1.cpp #include "header.h" void ns::func() { // 函数定义 } // source2.cpp #include "header.h" int main() { ns::func(); // 调用命名空间中的函数 return 0; } ``` 在上面的代码中,头文件 "header.h" 中包含了命名空间 ns 中的函数 func 的声明。在源文件 "source1.cpp" 中定义了函数 func,并使用作用域解析运算符 "::" 来指定函数的命名空间。在源文件 "source2.cpp" 中,通过包含头文件 "header.h" 来使用命名空间中的函数 func。 需要注意的是,在使用头文件时,要确保头文件中的代码只被编译一次。为了避免重复编译,可以使用预编译指令 "#ifndef" 和 "#define" 来防止头文件重复包含,如下所示: ```c++ // header.h #ifndef HEADER_H #define HEADER_H namespace ns { void func(); } #endif ``` 在上面的代码中,使用预编译指令 "#ifndef" 和 "#define" 来防止头文件重复包含。如果头文件已经被包含,则不会再次包含头文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值