是否可以从 C++ 中的构造函数访问对象名称?
Is it Possible to Access an Object Name from the Constructor in C++?
所以我的问题是是否可以从构造函数访问正在构造的对象的名称。这是我的代码片段:
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
函数,我希望语句以对象的名称开头,而不进行硬编码。例如,其中一个对象被命名为Tyler
我希望第一个cout
语句打印出Tyler's Health is XYZ
。
我希望它能够工作,以便我能够创建一个对象,而不必每次都对名称进行硬编码。
如果这是对我想要实现的目标的糟糕解释,我很抱歉。提前感谢您提供的任何帮助!
这种内推或反射在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;
}
相关文章:
- 按基类对象访问派生类资源时出错
- 使用基类对象访问派生的仅类方法
- 从 const 对象访问非 const 方法
- 如何在C++中使用类对象访问指针数据成员
- 如何通过不同的指针使用类的对象访问结构?(链表)(C++)
- 使用二进制搜索树中的迭代器对象访问左侧节点
- 为什么引用类型在使用临时对象访问时是左值
- 从父对象 c++ 访问子方法
- 无法通过指针或对象 c++ 访问受保护的成员
- 为什么可以从类中的对象访问类的私有变量
- 对类似"struct {double, int}"对象使用reinterpret_cast进行对象访问
- 通过无符号 char 别名进行对象访问,加载和存储时会发生什么?
- 从对象访问结构枚举
- 如何全局创建对象并使用该对象访问全局范围内的公共成员函数
- 在C 中,可以从第三个共享对象访问其他两个不同共享对象
- 如何在C 中提供一个可呼叫的对象访问,例如lambda
- C 向量对象访问
- C++是否可以从同级第二个派生对象访问第一个派生对象的受保护基础数据成员?
- 如何从类内实例化的对象访问私有变量
- 多态性:通过类文本或对象访问静态成员