C++ 标题,函数定义,不同文件中的main
我想做一个程序,它将在3个文件中。“Persona.hpp”“Persona.cpp”“main.cpp”我不确定怎么做 这是“Persona.hpp”C++ 标题,函数定义,不同文件中的main,c++,oop,C++,Oop,我想做一个程序,它将在3个文件中。“Persona.hpp”“Persona.cpp”“main.cpp”我不确定怎么做 这是“Persona.hpp” \ifndef\uu PERSONA\uHPP #定义个人HPP #包括 使用名称空间std; 类角色{ 公众: 人物角色(); void setNombre(字符串N); void setFechaNac(字符串F); 无效设定比索(浮动P); 无效设置状态(浮动E); 字符串getNombre(void); 字符串getFechaNac(v
\ifndef\uu PERSONA\uHPP
#定义个人HPP
#包括
使用名称空间std;
类角色{
公众:
人物角色();
void setNombre(字符串N);
void setFechaNac(字符串F);
无效设定比索(浮动P);
无效设置状态(浮动E);
字符串getNombre(void);
字符串getFechaNac(void);
浮动比索(无效);
浮动getEstatura(无效);
void mostrarDat(void);
私人:
字符串名称;
字符串fechaNac;
浮动比索;
浮动状态;
};
#恩迪夫
“Persona.cpp”
#包括“Persona.hpp”
#包括
#包括
使用名称空间std;
Persona::Persona(){
nombre=“”;
fechaNac=“”;
比索=estatura=0;
}
void Persona::setNombre(字符串N){
nombre=N;
}
void Persona::setFechaNac(字符串F){
fechaNac=F;
}
无效人物::塞特比索(浮动P){
比索=(P>1和&P30和&E使用
,包括“Persona.hpp”而不是,包括,使用
,包括“Persona.hpp”而不是;包括,使用
,包括“Persona.hpp”而不是
而不是#include
如果源文件和头文件有不同的目录,请确保找到了正确的目录。您可能需要像这样更改目录:
#include "../Headers/Persona.hpp"
如果源文件和头文件有不同的目录,请确保找到了正确的目录。您可能需要像这样更改目录:
#include "../Headers/Persona.hpp"
如果源文件和头文件有不同的目录,请确保找到了正确的目录。您可能需要像这样更改目录:
#include "../Headers/Persona.hpp"
如果源文件和头文件有不同的目录,请确保找到了正确的目录。您可能需要像这样更改目录:
#include "../Headers/Persona.hpp"
要在OOPS中获得更好的编程方法,请始终在.h或.hpp文件中使用#ifndef指令。
像这样启动你的.hpp
#ifndef __PERSONA_HPP
#define __PERSONA_HPP
在你的文件末尾,写上这一行
#endif
这将解决很多问题,并避免多次包含头文件。要在OOPS中获得更好的编程方法,请始终在.h或.hpp文件中使用#ifndef指令。
像这样启动你的.hpp
#ifndef __PERSONA_HPP
#define __PERSONA_HPP
在你的文件末尾,写上这一行
#endif
这将解决很多问题,并避免多次包含头文件。要在OOPS中获得更好的编程方法,请始终在.h或.hpp文件中使用#ifndef指令。
像这样启动你的.hpp
#ifndef __PERSONA_HPP
#define __PERSONA_HPP
在你的文件末尾,写上这一行
#endif
这将解决很多问题,并避免多次包含头文件。要在OOPS中获得更好的编程方法,请始终在.h或.hpp文件中使用#ifndef指令。
像这样启动你的.hpp
#ifndef __PERSONA_HPP
#define __PERSONA_HPP
在你的文件末尾,写上这一行
#endif
这将解决很多问题,并避免多次包含头文件。看起来您的包含目录设置错误
此外,您基本上以“错误”的方式包含标题,这可能也是原因:
#include“header.h”
:在查找特定头文件时,将首先查找当前代码目录(即cpp文件所在的位置)
#include
:将首先查看系统/预定义的include目录
但是,根据您的编译器设置、版本等,可能不会有任何差异(除非您有冲突的文件名)。始终遵循预期路线绝对是一个好主意:
使用#include“…”
包含位于源目录某处的头文件。使用#include
包含应安装在编译机器上的其他头文件(即外部依赖项)
添加的关于包含保护的注释(使用#ifndef
和#define
或#pragma一次
):这些应用于防止头文件多次包含在同一翻译单元中,例如,如果同一头文件包含在两个不同的其他头文件中,则最终会重新定义变量、结构、类等
包含防护是防止这种行为的一种简单方法;您只需确保使用足够独特的宏即可
基本的include guard可以是这样简单的东西:
#ifndef MY_CUSTOM_HEADER_FILE
#define MY_CUSTOM_HEADER_FILE
// Your header file code
#endif
但是,您可能会同意,这可能会非常麻烦,而且理论上容易出错,例如,如果有人选择诸如CUSTOMER
或CUSTOMER\u H
之类的常用词或名称。因此,几乎任何现代预处理器都会接受pragma指令#pragma once
。如果该行位于头文件中(且处于活动状态),编译器将确保它不会包含超过一次:
#pragma once
// Your header file code
看起来您设置的包含目录不正确
此外,您基本上以“错误”的方式包含标题,这可能也是原因:
#include“header.h”
:在查找特定头文件时,将首先查找当前代码目录(即cpp文件所在的位置)
#include
:将首先查看系统/预定义的include目录
但是,根据您的编译器设置、版本等,可能不会有任何差异(除非您有冲突的文件名)。始终遵循预期路线绝对是一个好主意:
使用#include“…”
包含位于源目录中某个位置的头文件。使用#include
包含应安装在以下位置的计算机上的其他头文件: