gpt4 book ai didi

c++ 继承 Building 方法

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:06 25 4
gpt4 key购买 nike

我有一个关于构建方法的问题:

virtual std::string getPerson() const;

我有一个子类 Player,父类是 Person。

类玩家:

class Player : public Person {
public:
Player(const std::string& p_name,const std::string& p_lastname, const int& p_age, const std::string& p_position);
virtual ~Player();
virtual Person* clone() const;

std::string getPosition() const;
virtual std::string getPerson() const;


private:
std::string m_position;

};

类人:

    class Person {
public:
Person(const std::string& p_name,const std::string& p_lastname, const int& p_age);
virtual ~Person();

virtual std::string getPerson() const;
std::string getName() const;
std::string getLastName() const;
int getAge() const;


private:
std::string m_name;
std::string m_lastname;
int m_age;
};

当我尝试在播放器中添加它时:

std::string Player::getPerson()
{
ostringstream os;

os << "Name :" << getName() << "\n";
os << "LastName :" << getLastName()() << "\n";
os << "Age :" << getAge()() << "\n";
os << "Position :" << getPosition();

return os.str();
}

我找不到成员声明

我无法让它工作我需要打印这样的东西:

Name     : John
Lastname : Smith
Age : 22
Position : Goalie

最佳答案

您错过了函数签名末尾的 const。这应该有效:

std::string Player::getPerson() const
{
ostringstream os;

os << "Name :" << getName() << "\n";
os << "LastName :" << getLastName()() << "\n";
os << "Age :" << getAge()() << "\n";
os << "Position :" << getPosition();

return os.str();
}

但是请注意我在评论中所说的并更改函数的名称,或者更好的是,让你的类与 std::ostream 一起工作。通过 overloading operator<< .

关于c++ 继承 Building 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22720887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com