我需要输入课程的参数,我应该在哪里做?同样,为什么COUT被认为是在课堂上使用的不良实践
I need to enter parameters for classes, where should I do it? Also why is cout considered bad practice to use in classes?
我有班级人和班级餐具。
我在类粉碎机中创建人类对象,但是我需要将参数输入人类。它具有年龄,体重和身高。
所以首先就像
MealPlanner::MealPlanner(){
humanP = new Human;
/// But human actually has parameters like Human(weight, age, ...)
/// I just need those parameters to be entered by the user
}
我应该在粉状计划中做一个功能,例如
MealPlanner::enterInfo(){
int age;
cout << "enter age" << endl;
cin >> age;
/// and so on
///and then do
humanP->setAge(age);
}
通常,我会在main()内输入所有信息,然后将物体传递给餐随机量,但是我有一项任务可以使对象在餐具式班级中进行,而最好的方法是将人类的物体在其中。但是人类的需求信息,我应该在哪里让用户输入此信息?
也为什么要在课堂内使用不良练习?
假设humanP
是Human
类型的指针,该指针是MealPlanner
的成员变量(即字段)。由于它是一个指针,因此您需要调用operator new()
来初始化它 - 但是在这种特殊情况下(当您在所有者的构造函数中创建),将humanP
变成常规变量可能会更好。
这样,它将被隐式地构造默认 - 您无需明确构造它。
关于阅读输入/输出:理想情况下,您应该拆分用户输入/验证和数据修改。因此,考虑执行IN/OUT过程的图层类或功能,然后调用MealPlanner::setHumanData(age, weight, height)
。
相关文章:
- 为什么rand()的使用被认为是不好的
- 为什么 std::shared_ptr 被认为是"heavy"和"expensive",但 std::array "same perfprmance as plain (c-style) arrays
- 一个C头文件可以被认为是一个接口吗
- 为什么const char*和const char[]作为函数参数被认为是等价的
- 为什么12.0==11.999999999999999999被认为是真的
- 这会被认为是糟糕的编程实践吗?
- 为什么这被认为是恒定的?
- 抽象类/接口中的空方法是否被认为是一种好的做法?
- 如果我具有调用其其他实例之一的超载函数,它是否被认为是递归功能
- std::unique_ptr可以被认为是一个monad吗?
- C++ 指向类的指针和/或引用是否被认为是"movable"?
- 使用自定义宏来简化 cin 和 cout 语句等内容被认为是更好还是更差
- 使用成员函数更改对象或返回并分配它是否被认为是更好的做法?
- 我很难修复我认为是双重免费的东西
- 使用 #define 被认为是"bad practice"吗?
- 是一个被认为是不同类型的班级内部的正向声明
- 这被认为是有效的C 11还是C 14?还是GCC/Clang弄错了
- 为什么这个嵌套的 lambda 不被认为是 constexpr?
- 我需要输入课程的参数,我应该在哪里做?同样,为什么COUT被认为是在课堂上使用的不良实践
- 我认为是课堂上的困难