对象之前的预期')'。类没有命名类型[重复]

Posted

技术标签:

【中文标题】对象之前的预期\')\'。类没有命名类型[重复]【英文标题】:expected ')' before object. class does not name a type [duplicate]对象之前的预期')'。类没有命名类型[重复] 【发布时间】:2018-11-21 09:29:37 【问题描述】:

我不知道发生了什么。我在头文件中包含了文件保护,但仍然出现错误。

这些是我的课程:

汽车.h

    #ifndef CAR_H
    #define CAR_H

    #include "Color.h"

    class Car
    
        public:
            Car(Color a);
            void printInfo();
        private:
            Color carColor;
    ;
    #endif

汽车.cpp

    #include "Car.h"
    #include <iostream>

    using namespace std;
    Car::Car(Color a)
    : carColor(a)
    
    

    void Car::printInfo() 
        cout << "the car is ";
        carColor.printColor();
    

颜色.h

#ifndef COLOR
#define COLOR

#include "Car.h"
#include <iostream>


using namespace std;

class Color

    public:
        Color(string c);
        void printColor();


    private:
        string colorr;
;
#endif // COLOR

颜色.cpp

#include "Color.h"
Color::Color(string c)
: colorr(c)



void Color::printColor() 
    cout << colorr;

编辑: 伙计们,我没有侮辱任何人。想象一下你写了很多字,*** 给你关于问题的错误,你编辑,但仍然是一样的,然后再次编辑......这种情况一次又一次地发生。我应该多写什么??这个问题简单而简短,甚至不需要解释。

【问题讨论】:

你应该习惯于使用const string&amp; 而不是string 作为参数。引用比副本便宜,const 有助于传达关于可变性的意图。 你至少也可以尝试做个文明人。快点!如果您想知道为什么这个问题被大力否决,那么除了您自己之外,没有人可以责备。 “我应该多写点什么??这个问题简单而简短,甚至不需要解释它。” 嗯......你可以(阅读应该) 在您的问题正文中引用完整和准确 错误消息。您还应该指出编译器报告的错误的确切位置。这个问题可能简单而简短,但解释您对代码和错误消息的理解/期望仍然是一个好主意。这将有助于人们为您的问题提供更好的答案并解决您的误解。 【参考方案1】:

首先,您应该从Color.h 中删除#include "Car.h"

它创建了一个不必要的循环包含,并且编译器在知道Color 是一个类之前就命中了Car(Color a)

您还需要包含标题 &lt;string&gt; 以将字符串输出到 cout。

下一次,也许不要侮辱帮助你的人。

【讨论】:

以上是关于对象之前的预期')'。类没有命名类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Git 中重命名文件后没有预期的日志 [重复]

'令牌类继承之前的c ++预期类名[重复]

启动对象时类类型前的反斜杠[重复]

获取命名空间内的所有类[重复]

“this”指的是“window”对象没有按预期工作[重复]

没有“+=”候选者产生预期的上下文结果类型“Int”[重复]