Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 尝试使用友元函数获取受保护的int_C++ - Fatal编程技术网

C++ 尝试使用友元函数获取受保护的int

C++ 尝试使用友元函数获取受保护的int,c++,C++,我试着把friend函数行放在一个类中,但它总是告诉我“'friend'在类外使用”和其他问题 我需要做的是获得creatureCards的HP,以便在以后的功能中更改它 #包括 #包括 #包括 #包括 使用名称空间std; 班级卡{ 受保护的: 字符串名; 字符串颜色; 煤焦类型; 字符串管理成本; 布尔敲击; 公众: 卡片():名称(“未知”)、颜色(“未知”)、类型('?')、成本(0)、点击(假){} 卡片(字符串n,字符串c,字符t,字符串mC):名称(std::move(n)),颜色

我试着把friend函数行放在一个类中,但它总是告诉我“'friend'在类外使用”和其他问题

我需要做的是获得creatureCards的HP,以便在以后的功能中更改它

#包括
#包括
#包括
#包括
使用名称空间std;
班级卡{
受保护的:
字符串名;
字符串颜色;
煤焦类型;
字符串管理成本;
布尔敲击;
公众:
卡片():名称(“未知”)、颜色(“未知”)、类型('?')、成本(0)、点击(假){}
卡片(字符串n,字符串c,字符t,字符串mC):名称(std::move(n)),颜色(std::move(c)),类型(t),manaCost(mC),点击(false){}
虚拟无效重置(){
抽头=假;
};
字符串getName(){
返回名称;
}
};
类DestroyCreatureEffect:公共效果{};
类别创建卡:公共卡{
受保护的:
国际攻击力;
int-baseHP;
int-HP;
布尔第一次罢工;
布尔践踏;
布尔是雌雄同体;
公众:
creatureCard(字符串n、字符串c、字符串mC、整数aP、整数bH、布尔fS、布尔t):
卡片(标准移动(n),标准移动(c),'c',mC),攻击力(aP),基本生命(bH),第一次攻击(fS),践踏(t),被破坏(假){
HP=baseHP;
好友无效销毁CreatureEffect::cardEffect();
//friend gives:“friend”在课外使用
//cardEffect给出:函数中不允许定义或重新声明“cardEffect”
}
void reset()重写{
HP=baseHP;
抽头=假;
}
};

您是否在询问错误消息的含义?您是否在询问如何使用
friend
关键字?您收到的完整错误消息是什么?我问这个问题是因为我收到的错误消息告诉了我什么是错误的:
在构造函数'creatureCard::creatureCard(std::string,std::string,std::string,int,int,bool,bool'):错误:'friend'在类外使用
。注意消息的开头:“在构造函数中”。将friend声明移到构造函数定义之外(但仍在类定义之内——基本上是将该行与其后的右括号互换)。“我需要做的是获取creatureCards的HP,以便在以后的函数中更改它”——这一点值得怀疑。更可能的情况是,您应该为
creatureCard
提供一个成员函数来更改对象的
HP
。在C++中,友谊是最好避免的。