我对C ++很新。我正在尝试创建一个名为Book的基本类,我在.cpp
文件中收到错误:
错误:预期')'在'theAuthor'之前
然后'author','title'和'pages'都说:
无法解析标识符
我在网上看了很多例子,我看不出任何错误。
Book.h
:
#include <string>
using namespace std;
#ifndef BOOK_H
#define BOOK_H
class Book{
public:
string author;
string title;
int pages;
Book(string theAuthor,string theTitle,int thePages);
};
#endif /* BOOK_H */
Book.cpp
:
#include "Book.h"
#include <string>
using namespace std;
Book(string theAuthor,string theTitle,int thePages){
author = theAuthor;
title=theTitle;
pages=thePages;
}
答案 0 :(得分:1)
你需要声明它:
Book::Book(string theAuthor,string theTitle,int thePages){
这样,编译器知道你正在尝试实现构造函数(这是第二个“Book(...)”所用的)“Book”类(这就是“Book ::”的含义)< / p>
答案 1 :(得分:1)
您已在类中声明了Book
的构造函数,但您已将该定义放在了外部。该定义不是自由函数,因此您必须同时命名要定义的类的类和方法。对于构造函数,这些名称是相同的。所以:Book::Book
。
类外的析构函数定义为Book::~Book
,但默认的析构函数通常没问题。
答案 2 :(得分:0)
变化:
Book(string theAuthor,string theTitle,int thePages){
author = theAuthor;
title=theTitle;
pages=thePages;
}
为:
Book::Book(string theAuthor,string theTitle,int thePages){
author = theAuthor;
title=theTitle;
pages=thePages;
}