C++ C++;不编译,因为它说文件没有';不存在,但它在同一目录中
在一个文件夹中,我得到了以下文件: book.h,book.cpp,card.h,card.cpp 这是这本书的内容C++ C++;不编译,因为它说文件没有';不存在,但它在同一目录中,c++,compiler-errors,g++,header-files,C++,Compiler Errors,G++,Header Files,在一个文件夹中,我得到了以下文件: book.h,book.cpp,card.h,card.cpp 这是这本书的内容 class book { public: string title; string author; string get_title(); string get_author(); } book::book(string title, string author){ title = title; a
class book {
public:
string title;
string author;
string get_title();
string get_author();
}
book::book(string title, string author){
title = title;
author = author;
}
这是我的书。cpp:
#include <book.h>
#include <iostream>
#include <string>
using namespace std;
string book::get_title(){
return title;
}
string book::get_author(){
return author;
}
int main(){
cout << ¨it works! \n¨
}
#包括
#包括
#包括
使用名称空间std;
字符串书::获取标题(){
返回标题;
}
字符串书::get_author(){
返回作者;
}
int main(){
CUT< P> <代码>包含“<代码>语句”,当包含的文件是“包含”路径的一部分时,使用“代码> <代码>括号,通常(虽然不是唯一)当文件来自库或C++标准库时。
当文件是项目的本地文件和源代码的本地文件时,将使用“”
如果你把它们混在一起,你会过得很不愉快。两者的区别
#include <book.h>
第一个只在INCLUDE path中查找文件book.h
。后者首先在源文件所在的目录中查找该文件,如果未找到该文件,则在INCLUDE path中查找该文件。
因此,您可以通过用引号替换尖括号,或者通过添加目录以包含来解决问题
g++ -I . -c book.cpp
用户包含应在中
不是
。不是答案,而是…你的书。h看起来无论如何都是错误的。你需要使用std::string并在标题中包含。此代码还有一些其他问题。book.h
应该\include
,并具有std::string
。不要使用命名空间而使用string
这是个坏主意。<代码>标题=标题;< /C> >不做你认为的。有公共数据成员会破坏访问者的目的。为什么你为一个明显的C++问题而浪费了C标签?我不知道,好吗?我对这个混乱感到抱歉。
g++ -I . -c book.cpp