C++ 可以在if语句中声明类吗?
所以问题是“健康”不在这个范围内,我理解为什么,我想你理解我想做什么,我不认为有可能用“如果”来做,还有别的方法吗 谢谢你的帮助C++ 可以在if语句中声明类吗?,c++,C++,所以问题是“健康”不在这个范围内,我理解为什么,我想你理解我想做什么,我不认为有可能用“如果”来做,还有别的方法吗 谢谢你的帮助 #include<iostream> class Knight { int health = 10; }; class Mage { int health = 8; }; ``` int main () { int player_class; std::cin >> player_class;
#include<iostream>
class Knight
{
int health = 10;
};
class Mage
{
int health = 8;
};
```
int main ()
{
int player_class;
std::cin >> player_class;
if(player_class == 1) Knight player;
if(player_class == 2) Mage player;
std::cout << health;
}
#包括
阶级骑士
{
int health=10;
};
职业法师
{
int-health=8;
};
```
int main()
{
国际级;
std::cin>>播放器类;
如果(玩家等级==1)骑士玩家;
如果(玩家等级==2)法师玩家;
std::cout是的,您可以在if语句中声明class对象,但声明对象的范围位于if语句中
如果要在If语句
之外访问它,请按如下所示创建一个指针和基类
#include <iostream>
#include <memory>
class base {
public:
int health;
base(int arg):health(arg){ }
virtual ~base(){ }
};
class Knight : public base
{
public:
Knight():base(10){}
};
class Mage : public base
{
public:
Mage():base(8){}
};
int main ()
{
int player_class;
std::cin >> player_class;
std::unique_ptr<base> bPtr;
if(player_class == 1) bPtr = std::make_unique<Knight>();
if(player_class == 2) bPtr = std::make_unique<Mage>();
std::cout << bPtr->health;
}
#包括
#包括
阶级基础{
公众:
国际卫生组织;
base(int-arg):运行状况(arg){
虚拟~base(){}
};
职业骑士:公共基地
{
公众:
奈特():基(10){}
};
职业法师:公共基地
{
公众:
Mage():基(8){}
};
int main()
{
国际级;
std::cin>>播放器类;
std::唯一的ptr bPtr;
如果(player_class==1)bPtr=std::make_unique();
如果(player_class==2)bPtr=std::make_unique();
性病:妇女健康;
}
从公共基继承类,然后在if外部创建std::unique_ptr
。std::variant
也可以工作。阅读有关继承和多态性的内容。它们是变量声明,而不是类。代码中有两个类定义,但没有类声明。