1、 XXX.h 的头文件是不是自动与 xxx.cpp 文件对应的?
2、
我的xxx.cpp 声明一个函数 say();
另外一个 yyy.cpp 函数也声明一个 say();
xxx.h 中定义一个 say();的函数
xxx.cpp 和 yyy.cpp 都有一个 #include "xxx.h"
最后 main.cpp 也 #include "xxx.h"
那么当 main.cpp 调用 say(); 会怎么样?
3、xxx.h 有 #include <iostream.h>
yyy.h 有 #include <ddraw.h> main.cpp 也有一个#include <iostream.h> 和 #include <ddraw.h> 等等
如果 main.cpp 把 xxx.h 和 yyy.h include 进来的话,算不算重复定义?
如何避免?
刚入门,有些迷惑,请大家指教一下~~谢谢!
2、
我的xxx.cpp 声明一个函数 say();
另外一个 yyy.cpp 函数也声明一个 say();
xxx.h 中定义一个 say();的函数
xxx.cpp 和 yyy.cpp 都有一个 #include "xxx.h"
最后 main.cpp 也 #include "xxx.h"
那么当 main.cpp 调用 say(); 会怎么样?
3、xxx.h 有 #include <iostream.h>
yyy.h 有 #include <ddraw.h> main.cpp 也有一个#include <iostream.h> 和 #include <ddraw.h> 等等
如果 main.cpp 把 xxx.h 和 yyy.h include 进来的话,算不算重复定义?
如何避免?
刚入门,有些迷惑,请大家指教一下~~谢谢!
不是2、
会产生编译错误,根本通不过编译。3、避免重复定义的方法是在.h文件中
#ifndef XXXXX
#define XXXXX .....//your code#endif
1 一般是。但是它们没有对应关系。你需要在CPP中INCLUDE这个H文件才可以用。
2 如果SAY是一个全局函数,不在类中,你这样子做会有编译错误!除非你的两个SAY的参数不一样。还有,这与H中的声明无关系,在XXX与YYY中无须包含头文件。
3 不会重复定义。因为,在H文件中已防止了这一点。一般情况下,这样子写:
#ifndef ...
#define ...
#endif或者
#pragma once
在
xxx.h 中声明 say() 这个涵数
xxx.cpp 中#include "xxx.h" 并实现其函数那么为什么在 main.cpp中只要把 xxx.h include 进去
然后在 main.cpp 调用 say(); 函数的时候它会找 xxx.cpp 中的 say() 函数呢?