c++重新设置构造函数值
C++ Resetting Constructor Values
我的程序中有一个do循环,我需要在每次循环发生时重置值(从构造函数),直到用户退出程序。我的问题是:如何使一个函数重置值(甚至,旧),因为每个时间循环发生?
我在下面给出了答案,并在页面末尾通过回答我自己的问题给出了解释。
class NNew
{
private:
int een, old;
public:
NNew(int nn,int oo)
{
een = nn;
old = oo;
}
void newer(int n)
{
een = n;
}
void Older(int o)
{
old = o;
}
void reset()
{
een = 0;
old = 0;
}
};
int main()
{
char answer1, answer2;
int n,o;
NNew *object = new NNew(10,100)
do
{
cout << "Would you like to continue?" << endl;
cin >> answer1
if (answer = 'yes')
{
do
{
(program asks user for inputs for n and o...)
} while(answer2 !='q');
}
object->reset();
} while(answer1 !='no');
delete object;
object = 0;
return 0;
}
如果您希望在每次循环迭代中都有一个新的对象,您可以使用一个自动变量,让语言来处理它的构造和销毁,而不必担心手动重置它:
do
{
NNew object(10,100);
...
} while (...);
或者如果它必须在堆上:
do
{
NNew* object = new NNew(10,100);
...
delete object;
} while (...);
你的方式,一个新的NNew对象是创建与循环的每次迭代,如果你想保持相同的对象与每次迭代,你可以尝试创建NNew对象之前做…while循环。
仅供参考,当你在堆上创建一个对象时,即使用new关键字,你应该在完成后删除它。
感谢所有帮助找到解决方案的人。
我的问题本身就有答案。我发现我的代码不能正常工作的主要原因是示例代码之外的一些基本问题。我在问题中提供的示例代码实际上是有效的,您可以使用它重置构造函数值
相关文章:
- 如何在构造函数中使用初始值设定项设置具有相同值的 2d 数组?
- 构造函数将所有值设置为 0
- 如何在没有复制构造函数的情况下为地图设置值?
- 类中的 Arduino 对象构造函数设置垃圾值
- 为什么我的突变器函数没有设置任何内容?还是我的构造函数?
- 无法在构造函数中执行设置元素插入
- 在 c++ 中将对象设置为等于同一类的构造函数是否有效?
- 使用构造函数初始化结构还是在之后设置其值更好?
- 将复制构造函数设置为private和=delete有什么区别
- 我可以检查初始化列表中设置的构造函数主体中的变量吗
- 将复制构造函数设置为默认值在继承自 QObject 时不起作用
- 尝试将构造函数设置为 0 - c++ 的未处理异常
- C++构造函数设置值
- 多个线程 - 无法访问构造函数设置的类成员变量
- 什么时候应该将构造函数设置为 constexpr
- 在类中声明数组,并使用构造函数设置其大小
- 无法从构造函数设置私有值
- 我的第一个大小工作,但无法为我的其他构造函数设置大小
- 是否可以将默认构造函数设置为"std::map<T1,T2>"值?
- 在类构造函数中设置std::vector,为元素构造函数设置不同的值