C++ 在c+中定义类+;
当我试着运行这个程序时,我得到一个错误,说: “致命错误:sales_item.h:没有此类文件或目录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的文件,您要求它包含在您正在编译的文件中
#包括
#包括“销售项目.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;
}