部队在C + +类型

08年12月17日

冲压类型在C + +提供: 整型,浮点,长,容易翻番 ...不要告诉 :搭扣

每一 (类) 可以被看作是一个新的数据类型,而我们的计算,有时需要强制从一个模型类的类型是可用。 例如,我们构造类SOTHUC(实际)这种行动“加”,“除”,“人”,“分化”,我们显然不能执行围绕建立这两种操作模式SOTHUC,可为其他类型的诠释浮动,...为此,我们有更多的丈夫公共机构有两种方式:加载的类型样式SOTHUC用,或者“力量型” SOTHUC(真实) int 类型,浮法 ...来计算。

要强制压力压从类型可用,或键入从一是对现有的编绘的开发,C + +中 ,我们做到以下几点:

- 从一个模型类的果汁是可用:

名称>修剪>

代替> tenbien <轿数据;
市民:
...
<kieu san>数据运算符 ()

....
<Gia 返回类型的数据传输ve>;

作为如下:

名称>眼压>前/ /前级的对象声明

现在需要按对象类型的当然是在C + +,我们可以使用如下:

ex1圣> <轿数据;

ex1 = <kieu san>数据(前)/ *使前按下<kieu san>数据(ex1型的类型),然后分配给ex1 * /
或使用
ex1 =前; / *该程序将自动按动前<kieu类型san>数据(ex1类型),然后分配给ex1 * /

为了了解更多,请参阅下面的例子:

假设我们建立了一个大整数层作为如下:

largeInt

焦炭 *值;
市民:
largeInt();
largeInt(largeInt 常量 &);
〜LargeInt();
朋友IStream&运算符>>(的IStream&,largeInt&);
朋友 ostream的运算符<<(ostream的&, 常量 largeInt&);
经营者 largeInt +(largeInt 常量 &);
largeInt 运营商 - (常量 largeInt&);
largeInt 运营商 - ();
largeInt 算*(常量字符&);
largeInt 算*(常数 largeInt&);
largeInt 运营商/(常量 largeInt&);
经营者为 int 诠释 ();//的EP
);

我们只使用加载的相同对象类largeInt直流二丈夫+,-,*,/运算符:

当有任何力量型算子:

largeInt因子X1,X2中,x; CIN的>> X1的>>有X2, 诠释 Ÿ,Y1的;
x = X1的+ x2 / /完成
为y = X1的/ /未执行
为y = X1的9 / /未执行
为y = 9 + X1的/ /未执行
x = Y1的; / /没有做

一旦运营商迫切的风格:

largeInt因子X1,X2中,x; CIN的>> X1的>>有X2, 诠释 Ÿ,Y1的;
x = X1的+ x2 / /完成
为y = X1的/ /执行该方案将自动强制X1的类型诠释
为y = X1的9 / *不能做,使部队的地址X1的类型诠释: 为y = 诠释 (× 1)+9   * /
为y = 9 + X1的; / *这是完成后, 诠释 *在X1的程序自动压制的种类/
x = Y1的; / / 尚未执行

-型果汁从一是可以用1(类)是一种数据类型,我们定义:

的C + +不容许新营办商,所以我们不能确定如何适用强制类型多为这种情况下:

如何报告:

largeInt

焦炭 *值;
市民:
...
经营者为 int 诠释 ();//的EP
largeInt ()/ /无效
);

是无效的)失败largeInt 运营商 (;

我应该怎么做,以迫使约一类的数据类型提供的? 我们有两种方式:使用功能你(朋友)用于强制类型和内容创作(构造函数)来强制类型。 如果您使用的功能,迫使键入函数名称不与类的名字相同,这是这一弱点的,largeInt假设在一个大类数()以上,迫使一些X int 类型的输入他们largeInt我们只能用largeint(十),convertToLargeInt(x)的...不能使用largeInt(十),它是不方便。 所以我们用强制式构造,申报如下:

名称>修剪>

代替> tenbien <轿数据;
市民:
...
名称>眼压>(<kieu数据san>)

法院“”“的数据类型的可用武力图层样式”;

回到我们上面看到的大量类的例子

如果没有构造“力量型”

largeInt × 1,× 2,十, 诠释 Ÿ,Y1的;
...
x = Y1的; / / 未执行

一旦构造“力量型”

largeInt × 1,× 2,十, 诠释 Ÿ,Y1的;
...
x = Y1的; / / 使 largeInt 诠释了程序自动按下

注:只有汽车拉力型构造,而分配,所以

largeInt × 1,× 2,十, 诠释 Ÿ,Y1,日圆;
...
x = X1的+ Y1的/ /没有做地址
largeInt x = X1的+(Y1)的; / /完成
x = Y1的+ X1的; / *完成后, 自动分配按下X1的诠释,总结,自动印刷机largeInt结果,对x * /
x = Y1的+ Y2系列/ /做

分享和欣赏:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • email
标签:
  1. hihipro
    2009年5月3日在23:36

    我在做相关的大量练习,但不治疗新界北总区BJT的褪色,你可以给她的代码是不是很不合适!
    非常感谢! (*)(*)(*)

  2. 2009年5月5日在12:29

    #:- S的 很久以前,不知道哪里抛出。 寻找新的销售发现 :搭扣
    在这里 :-)

  3. Rocket80
    2009年11月15日在12:35
    方式:L 我的朋友,我也想痤疮所有大的整数,看起来像链接或复制,然后死去,而不是降低 ^:)^
  4. rocket80
    09年11月20日在16:13
    当你亲爱的,你对类型转换经营者,他们很少发现,这份文件上谷歌搜索研究,你可以参考他们很少或没有意见,感谢你们很多人家园 :- P的
    09年11月20日20:22

    所有这些问题已经迫使他们的模型如上所述,然后 :搭扣