请教各位高手一个刚入门的问题!

bravemanly 2005-12-05 09:57:04
我现在要在C++头文件中,定义一个新类型,这个新类型是在0-sMaxFragNum之间的一个整数段
其原始表达式是
syntype FragNum = Integer /* Range of possible fragment numbers */
constants 0:sMaxFragNum endsyntype FragNum;
怎么在C++中实现?
...全文
226 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bravemanly 2005-12-07
  • 打赏
  • 举报
回复
还有个问题:newtype Intstring String( Integer, noInt); endnewtype Intstring;
定义一个新类型,是由整数组成的串和由noInt代表的空串,怎样用C\C++来实现?
bravemanly 2005-12-07
  • 打赏
  • 举报
回复
谢谢各位,感动啊,学习中!
femalelover 2005-12-06
  • 打赏
  • 举报
回复
根据你的要求,好像跟定义一个一般的类没什么不同呀.不用定义什么方法的话,用结构体更好一些(其实结构体也是类).
按一楼的说法:
#define NUM 100
class MyClass{
Public:
MyClass();
Private:
int MyIntNum[NUM];
};
至于你说的要使你的成员是一个整数段,在类义时是不允许给成员置初始值的.
这时你可以去你的构造函数中去处理数组.想要它在哪个区间就哪个区间.
用struct也完全可以这样做.
可能我理解错楼主的意思了.
xiaoxuhao 2005-12-06
  • 打赏
  • 举报
回复
c++的实现:

#include <iostream>
using namespace std;

#define MAX 100

class Counter
{
int iCount;
public:
Counter(int i=0);
operator int()
{
return iCount;
}
int increase();
};

Counter::Counter(int i)
{
if (i<MAX)
iCount=i;
else
iCount=i%MAX;
}

int Counter::increase()
{
if (iCount<MAX)
{
iCount++;
return iCount;
}
else
{
iCount=0;
return iCount;
}
}

void main()
{
Counter a;
cout<<a.increase()<<endl;//1
Counter b(10);
cout<<b.increase()<<endl;//11
Counter c(101);
cout<<c<<endl;//1

a=100;
cout<<a.increase()<<endl;//1

a=10;
b=20;
c=a+b;
cout<<c<<endl;//30
}

如果要计4294967295这么大的数,
把数据类型改成unsigned int,
c的实现不会,呵呵。
bravemanly 2005-12-06
  • 打赏
  • 举报
回复
TO:femalelover(极品车神), 这个不是一个数组就是定义一个属于某一个整数段的新类型。嗯还有个问题就是:
newtype Counter32 inherits Integer operators all;
adding operators
inc : Counter32 -> Counter32;
axioms
for all c in Counter32 (
c < 4294967295 ==> inc(c) == c + 1;
c >= 4294967295 ==> inc(c) == 0; );
endnewtype Counter32
这个也是定义一个新类型,这个新类型是具有整数的所有操作,同时和它有关的函数是inc(Counter c),主要是能进行在小于4294967295 的数完成自动加1的功能,当大于4294967295 ,则重置为0。如果用C语言,请教各位高手该怎么实现?谢谢各位照顾哈新手!
bravemanly 2005-12-05
  • 打赏
  • 举报
回复
可不可以给我用C++实现一下,小弟刚学C++,希望开个好头,有个好师傅带带我。谢谢
fiftymetre 2005-12-05
  • 打赏
  • 举报
回复
那就用struct
bravemanly 2005-12-05
  • 打赏
  • 举报
回复
谢谢哈wylove,请问高手还有没有更简单的实现方法,如果不用类呢?
wylove 2005-12-05
  • 打赏
  • 举报
回复
自己定义一个类,该类内有一个integer类型成员,并控制该成员的取值范围。

64,325

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧