C ++期待')'在参数名称之前

时间:2015-03-19 23:19:59

标签: c++

我对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;
}

3 个答案:

答案 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;
}