“expected')'之前的textIn”和“期望构造函数,析构函数或类型转换之前'('token”

时间:2017-05-22 16:03:21

标签: c++ constructor compiler-errors

我查看了多个线程,但它们要么是完全不同的问题,要么是人们不知道如何创建构造函数。我在标题中得到了第一个标题错误,在cpp文件本身中出现了第二个错误。

MenuItem.h

#include "SFML/Graphics.hpp"
#include <string>

#ifndef MENUITEM_H
#define MENUITEM_H

class MenuItem
{
            public:
                //Below constructor creates the first error
                MenuItem(string textIn="", float x, float y, bool highlightedDefault=false);
                bool highlighted;
                sf::Text text;
};

#endif // MENUITEM_H

MenuItem.cpp

#include "MenuItem.h"

MenuItem::MenuItem(string textIn, float x, float y, bool highlightedDefault)
{
    ...
}

1 个答案:

答案 0 :(得分:0)

像Neil Butterworth所说,您需要std::string textin,您还需要更改参数的位置。像这样:

class MenuItem
{
            public:
                //Below constructor creates the first error
                MenuItem(float x, float y,std::string textIn="", bool highlightedDefault=false);
                bool highlighted;
               sf::Text text;
};
MenuItem::MenuItem(float x, float y, std::string textIn, bool highlightedDefault)
{
    ....
}

默认值从右到左。