小编JOH*_* CO的帖子

C++ - 从另一个类构造函数调用类构造函数

所以我正在学习 C++ 课程,在一次练习中,我需要在名为“Character”的类的构造函数中使用名为“Weapon”的类的构造函数,但是每次我尝试编译代码时,它都会给我这个错误:

Character.cpp|13|error: no match for call to `(Weapon) (int&,std::__cxx11::string&)’|
Run Code Online (Sandbox Code Playgroud)

即使我在 Weapon.h 中声明了这个确切的构造函数:

#ifndef WEAPON_H
#define WEAPON_H

#include <string>

class Weapon
{
public:
    Weapon();
    Weapon(int damage, std::string name);
    virtual ~Weapon();

    int GetDamage() { return m_damage; }
    void SetDamage(int val) { m_damage = val; }
    std::string GetName() { return m_name; }
    void SetName(std::string val) { m_name = val; }

private:
    int m_damage;
    std::string m_name;
};

#endif // WEAPON_H
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我是法国人,这是我第一次发帖,但我尽力将源代码翻译成英文,如果某些行后面有任何错误或意外含义,请见谅。这是我的 Character.cpp / Weapon.cpp / Character.h 文件。

#include "Character.h"
#include "Weapon.h"

Character::Character() …
Run Code Online (Sandbox Code Playgroud)

c++ oop constructor encapsulation c++14

2
推荐指数
1
解决办法
3489
查看次数

标签 统计

c++ ×1

c++14 ×1

constructor ×1

encapsulation ×1

oop ×1