Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 标题,函数定义,不同文件中的main_C++_Oop - Fatal编程技术网

C++ 标题,函数定义,不同文件中的main

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

我想做一个程序,它将在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(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
包含应安装在以下位置的计算机上的其他头文件: