如何创建一个循环并加1的类对象
C++ How to create a class object that loops and increments by one?
我有三个文件,输出是我想要的,但它不是很优雅。
是否有任何方法可以让对象num (122)
和num(554)
按顺序输出下一个数字五次而不必每次都输出<< cout <<
?
main.cpp:
#include <iostream>
#include "number.h"
using namespace std;
int main()
{
Number obj(122);
cout << Nobj (122) << endl;
cout << Nobj (123) << endl;
cout << Nobj (124) << endl;
cout << Nobj (125) << endl;
cout << Nobj (126) << endl;
cout << Nobj (554) << endl;
cout << Nobj (555) << endl;
cout << Nobj (556) << endl;
cout << Nobj (557) << endl;
cout << Nobj (558) << endl;
}
头文件:
#ifndef NUMBER_H
#define NUMBER_H
class Number
{
public:
Number(int numA);
int operator ()(int numB);
int numA;
};
#endif
number.cpp:
#include <iostream>
#include "number.h"
using namespace std;
Number::Number(int numC): numA(numC)
{}
int Number::operator()(int numB)
{
int i = 0;
while(i < 10)
{
return numB += 1;
i++;
}
}
输出是:
123
124
125
126
127
555
556
557
558
559
编辑:
for(int i = 0; i < 5; ++i)
{
cout << Nobj (122+i) << endl;
}
for(int i = 0; i < 5; ++i)
{
cout << Nobj (554+i) << endl;
}
我想这个函数可能对你有帮助。
inline void print_nums(const size_t start_num, const size_t loop_times) {
for (size_t i = 0; i < loop_times; ++i) {
std::cout << (start_num + i);
std::cout << std::endl;
}
}
为了避免一直写入计数,您可以重载<<操作符
friend std::ostream& ::operator <<(std::ostream& stream );
如果你想按顺序输出对象,你可以这样:
- 在类Number周围创建一个包装器类,该类是重载的<<操作符并存储所有创建的Number对象
- 在Number-Class中存储指向下一个对象的单个链接引用/指针(幼稚的列表或队列实现)。操作符& lt; & lt;将在以下对象上递归地调用自身,直到其为nullptr
相关文章:
- 使用循环创建类对象
- 如何在C++中循环访问未知对象方法?
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 有没有办法在C++中循环访问对象的不同数据成员
- Pybind11:使用 for 循环使用 OpenMP 访问 python 对象
- 如何在 c++ 中使用 for 循环输出矢量中的所有对象
- 涉及全局对象的循环依赖C++
- c++ 循环访问对象列表并删除对象
- 循环访问对象列表 c++
- 在C++中使用循环创建多个对象
- 我想在 C++ 中使用 for 循环创建类对象
- 循环中本地对象的析构函数是否保证在下一次迭代之前被调用?
- 在 While 循环中重用对象的多线程
- C++ 在地图上循环 - 消失的对象
- 基于范围的 for 循环将对象移动到另一个容器中?
- 在游戏循环中创建类对象
- 访问类的 std::vector 与 for 循环中的 custum 类对象
- 如何通过C 中的类对象循环
- C++:外部对象循环引用
- 用对象循环向量