是否可以在C ++中从构造方法访问对象名称?

杰克逊123

所以我的问题是,是否可以从构造函数访问正在构造的对象的名称。这是我的代码片段:

Monk::Monk(int stam, int agil, string spec){
    stamina = stam;
    agility = agil;
    specialization = spec;
    cout << "'s Health is " << health() << endl;
    cout << "'s DPS is " << damage() << endl;
    cout << "'s current specification is a " << specName() << " monk." << endl;
}
int main() {
    Monk Tyler(25000, 1245, "Brewmaster");
    Monk Jackson(12500, 3000, "Windwalker");
    return 0;
}

因此,基本上,如果您看一下cout构造函数末尾的函数,我希望语句以对象名称开头而无需硬编码。因此,例如,一个对象被命名为TylerI,我希望第一条cout语句打印出来Tyler's Health is XYZ

我希望这项工作能够使我能够创建一个对象,而不必每次都对名称进行硬编码。

如果这是对我要达到的目标的不好解释,我感到抱歉。预先感谢您提供的任何帮助!

ΦXocę웃Пepeúpatsu

这种解释或反射在C ++中很难

最好的办法是修改类,并为每个对象指定一个属性名称:

Monk::Monk(int stam, int agil, string spec, string name){
    stamina = stam;
    agility = agil;
    specialization = spec;
    monkName = name;
    cout << monkName << "'s Health is " << health() << endl;
    cout << monkName << "'s DPS is " << damage() << endl;
    cout << monkName << "'s current specification is a " << specName() << " monk." << endl;
}

int main() {
    Monk Tyler(25000, 1245, "Brewmaster");
    Monk Jackson(12500, 3000, "Windwalker");
    return 0;
}

旁注,记住你可以做

Monk::Monk(int stam, int agil, string spec, string name):stamina(stam),agility (agil),specialization(spec),monkName(name){
    //stamina = stam;
    //agility = agil;
    //specialization = spec;
    //monkName = name;
    cout << monkName << "'s Health is " << health() << endl;
    cout << monkName << "'s DPS is " << damage() << endl;
    cout << monkName << "'s current specification is a " << specName() << " monk." << endl;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以在C#中缩短对象名称?

Xcode / Objective C中是否可以分配在运行时计算的变量/对象名称?

在工厂功能中,对象名称和“ this”关键字是否经常或始终可以互换?

在Lua中,您可以从'self'获得对象名称吗?

在 C++ 中是否可以根据名称访问变量(内省)

是否可以获取C ++中对象包含文件的名称?

手把可以循环访问唯一的对象名称吗?

是否可以在不添加对象名称前缀的情况下调用对象的功能?

是否可以从C ++访问QML锚?

SqlException:无效的对象名称c#

C#对象名称概念说明

对象名称/描述符在SNMP MIB模块中是否必须唯一?

有没有一种方法可以将所有.NET对象名称添加到我的词典中

是否可以在C ++中创建构造函数数组?

是否可以从C ++程序调用ACPI方法?

C ++-是否可以在ifstream中编辑数据?

是否可以等待C#中的线程

C中的同义`typedef`是否可以互换?

是否可以在 C++ 中编写延续?

在C ++中是否可以有虚拟类型?

是否可以从C中的数组调用函数?

是否可以在C#中覆盖赋值“ =”

是否可以在C ++中获得类型别名的名称?

是否可以在C ++中为变量使用动态名称

在没有对象名称的情况下在C#中解析JSON

如何在C ++中更改JSON对象名称而不更改其值?

在 C# 中反序列化不断变化的 JSON 对象名称

是否可以在C#中访问/编辑内核内存?

创建Javascript“类”的实例时,是否可以构造对象以便可以访问所有方法?