C++ 错误:'(' 标记之前的预期构造函数、析构函数或类型转换

Posted

技术标签:

【中文标题】C++ 错误:\'(\' 标记之前的预期构造函数、析构函数或类型转换【英文标题】:C++ Error: Expected constructor, destructor, or type conversion before '(' tokenC++ 错误:'(' 标记之前的预期构造函数、析构函数或类型转换 【发布时间】:2014-05-10 02:02:14 【问题描述】:

我无法摆脱代码中的几个编译错误。我在程序的其他地方使用过类似的语法没有问题,所以我不确定是什么问题。

在 PersonalRec.h 中:

#ifndef PersonalRec_H
#define PersonalRec_H

class PersonalRec

public:
    PersonalRec ();
    PersonalRec (string fName, string lName, Date bDate); //This line shows the first error
protected:
    void displayPersonalRec() const;
    int getAgeInYears() const;

private:
    std::string FirstName;
    std::string LastName;
    Date DoB;
;

#endif

在 PersonalRec.cpp 中:

#include<iostream>
#include<string>
#include<math.h>

#include "Date.h" //contains prototypes for Date class
#include "PersonalRec.h"

extern Date currentDate;

PersonalRec::PersonalRec()



PersonalRec::PersonalRec(string fName, string lName, Date bDate) //This line shows the second error

    FirstName = fName;
    LastName = lName;
    DoB = bDate;
    displayPersonalRec();


//Implementations of protected methods follow

编译器错误读取

PersonalRec.h:错误:在 'fName' 之前需要 ')'

PersonalRec.cpp: error: '(' token 之前的预期构造函数、析构函数或类型转换

我觉得他们是相关的。

编辑 - 第一个错误可以通过在 std::string fName 中添加字符串 fName 来修复,对于 lName 也是如此。该行的修改代码是

PersonalRec (std::string fName, std::string lName, Date bDate);

编辑 2 - 我对第二个错误做了同样的事情并且代码编译。

【问题讨论】:

【参考方案1】:

我猜你需要

#include <string> 

在您的 .h 文件中,并且您需要在字符串前面加上 std::string 前缀。

【讨论】:

我会试一试。编辑 - 它摆脱了第一个错误,但第二个仍然存在。

以上是关于C++ 错误:'(' 标记之前的预期构造函数、析构函数或类型转换的主要内容,如果未能解决你的问题,请参考以下文章

错误:“(”标记之前的预期构造函数、析构函数或类型转换?

错误:预期的构造函数、析构函数、“<”标记之前的类型转换

C++ 构造函数错误 - 标记 '<' 之前应为 ')'

错误:“;”之前的预期构造函数、析构函数或类型转换令牌

错误:“。”之前的预期构造函数、析构函数或类型转换令牌 - 了解 fstream

OpenCV 预期的构造函数、析构函数或类型转换