C++ 在c+中定义类+;

C++ 在c+中定义类+;,c++,class,error-handling,C++,Class,Error Handling,当我试着运行这个程序时,我得到一个错误,说: “致命错误:sales_item.h:没有此类文件或目录 #包括 #包括“销售项目.h” int main() { 销售项目手册; std::cin>>书籍; std::cout这意味着编译器找不到名为Sales\u item.h的文件,您要求它包含在您正在编译的文件中 猜测一下,这本书希望您创建一个具有该名称的文件,并将其保存到上面存储源文件的同一子目录中。这意味着编译器找不到名为Sales\u item.h的文件,您要求它包含在您正在编译的文件中

当我试着运行这个程序时,我得到一个错误,说:

“致命错误:sales_item.h:没有此类文件或目录

#包括
#包括“销售项目.h”
int main()
{
销售项目手册;
std::cin>>书籍;

std::cout这意味着编译器找不到名为
Sales\u item.h
的文件,您要求它包含在您正在编译的文件中


猜测一下,这本书希望您创建一个具有该名称的文件,并将其保存到上面存储源文件的同一子目录中。

这意味着编译器找不到名为
Sales\u item.h
的文件,您要求它包含在您正在编译的文件中

猜测一下,这本书希望您创建一个具有该名称的文件,并将其保存到上面存储源文件的同一子目录中。

是的,这是错误的

假设此代码位于名为
MyFile.cpp
的文件中,那么您的代码段假定类的声明位于与
MyFile.cpp
源文件位于同一文件夹中的文件
“Sales\u item.h”

#include实际上是一个复制/粘贴指令,它将指定文件的内容复制到当前文件中,并由编译器编译。现在,
Sales_item.h
文件不存在,编译器会给您一个找不到的错误

声明和定义类的正确方法:

#包括
//#包括“销售项目.h”
//“Sales_item.h”文件中应该包含什么
#包括
类别销售商品
{
公众:
销售商品(std::string itemName)//构造函数
{
m_Name=项目名称;
};
常量字符*GetName()
{
返回m_Name.c_str();
}
私有成员变量
std::字符串m_名称;
};
//结束“销售项目h”
int main()
{
std::字符串bookName;
std::cin>>bookName;//要求用户在命令提示符下键入字符串
Sales_item book(bookName);//构造对象
是的,这是错误的

假设此代码位于名为
MyFile.cpp
的文件中,那么您的代码段假定类的声明位于与
MyFile.cpp
源文件位于同一文件夹中的文件
“Sales\u item.h”

#include实际上是一个复制/粘贴指令,它将指定文件的内容复制到当前文件中,并由编译器编译。现在,
Sales_item.h
文件不存在,编译器会给您一个找不到的错误

声明和定义类的正确方法:

#包括
//#包括“销售项目.h”
//“Sales_item.h”文件中应该包含什么
#包括
类别销售商品
{
公众:
销售商品(std::string itemName)//构造函数
{
m_Name=项目名称;
};
常量字符*GetName()
{
返回m_Name.c_str();
}
私有成员变量
std::字符串m_名称;
};
//结束“销售项目h”
int main()
{
std::字符串bookName;
std::cin>>bookName;//要求用户在命令提示符下键入字符串
Sales_item book(bookName);//构造对象
std::看这个

此链接中的几行:

如何声明类

< P>类可以在最终使用的文件中声明。但是,在单独的文件中定义它们是更好的做法。然后,类可以在任何新的应用程序中容易地重用。然而,实际上创建和使用C++类实际上有4个阶段:

  • 创建包含类声明的头文件
  • < L>创建包含类的任何功能的C++文件 调用正在开发的C++应用程序的标题
  • 编译包含类功能和新应用程序的文件
  • 看这个

    此链接中的几行:

    如何声明类

    < P>类可以在最终使用的文件中声明。但是,在单独的文件中定义它们是更好的做法。然后,类可以在任何新的应用程序中容易地重用。然而,实际上创建和使用C++类实际上有4个阶段:

  • 创建包含类声明的头文件
  • < L>创建包含类的任何功能的C++文件 调用正在开发的C++应用程序的标题
  • 编译包含类功能和新应用程序的文件

  • 这是正确的方法

    销售项目.h

    #include <string>
    #include <iostream>
    
    class Sales_item {
     public:
         Sales_item(){};
         ~Sales_item(){};
              friend std::istream& operator>> (std::istream &in, Sales_item &si);
                friend std::ostream& operator<< (std::ostream &out, Sales_item &so);
    private:
         std::string name;
    
    };
    
    std::istream& operator >> (std::istream &in, Sales_item &si)
    {
         in >> si.name;
         return in;
    }
    std::ostream& operator << (std::ostream &out, Sales_item &so)
    {
         out << so.name;
         return out;
    }
    
    #包括
    #包括
    类别销售商品{
    公众:
    销售项目(){};
    ~Sales_item(){};
    friend std::istream&operator>>(std::istream&in,销售项目和si);
    friend std::ostream&operator>(std::istream&in,销售项目&si)
    {
    在>>si.name中;
    返回;
    }
    std::ostream和操作员手册;
    
    这是正确的方法

    销售项目.h

    #include <string>
    #include <iostream>
    
    class Sales_item {
     public:
         Sales_item(){};
         ~Sales_item(){};
              friend std::istream& operator>> (std::istream &in, Sales_item &si);
                friend std::ostream& operator<< (std::ostream &out, Sales_item &so);
    private:
         std::string name;
    
    };
    
    std::istream& operator >> (std::istream &in, Sales_item &si)
    {
         in >> si.name;
         return in;
    }
    std::ostream& operator << (std::ostream &out, Sales_item &so)
    {
         out << so.name;
         return out;
    }
    
    #包括
    #包括
    类别销售商品{
    公众:
    销售项目(){};
    ~Sales_item(){};
    friend std::istream&operator>>(std::istream&in,销售项目和si);
    friend std::ostream&operator>(std::istream&in,销售项目&si)
    {
    在>>si.name中;
    返回;
    }
    std::ostream和操作员手册;
    
    std::难道这意味着它找不到sales_item.h文件。这不是标准的标题或任何东西。您可能必须创建它并将其放在同一文件夹中。显示您的
    sales_item.h
    文件(该文件可能应命名为
    sales_item.hh
    );还要说明如何编译示例,并说明您使用的编译器和系统。这不是类定义。您创建了
    sales_item.h
    头文件?我如何显示它?请详细说明。我对所有这些都很陌生。这意味着它找不到sales_item.h文件。这不是标准头文件或任何东西。您可能需要显示您的
    Sales\u item.h
    文件(该文件可能应命名为
    Sales\u item.hh
    );al
    #include <string>
    #include <iostream>
    
    class Sales_item {
     public:
         Sales_item(){};
         ~Sales_item(){};
              friend std::istream& operator>> (std::istream &in, Sales_item &si);
                friend std::ostream& operator<< (std::ostream &out, Sales_item &so);
    private:
         std::string name;
    
    };
    
    std::istream& operator >> (std::istream &in, Sales_item &si)
    {
         in >> si.name;
         return in;
    }
    std::ostream& operator << (std::ostream &out, Sales_item &so)
    {
         out << so.name;
         return out;
    }
    
    #include <iostream>
    #include "Sales_item.h"
    int main()
    {
      Sales_item book;
      std::cin >> book;
      std::cout << book << std::endl;
      return 0;
    }